Reproduction apparatus and reproducing method

ABSTRACT

A reproducing apparatus has three reproducing modes that are a first mode, a second mode, and a third mode. In the first mode, when a program that has been reproduction restricted is tried to be reproduced, the reproducing operation is paused and the user is asked whether he or she wants to reproduce the program. Corresponding to the user&#39;s reply, the reproducing operation is performed or prohibited. In the second mode, a program that has been reproduction restricted is prohibited from being reproduced. In the third mode, a program that has been reproduction restricted is unconditionally reproduced. When the power of the apparatus is turned on at step S 31 , a prompt that causes the user to select one of the first mode, the second mode, and the third mode is displayed. At step S 33 , a process for designating a mode is performed. Information of the designated mode is stored in a nonvolatile memory.

DESCRIPTION REPRODUCING APPARATUS AND REPRODUCING METHOD

[0001] 1. Technical Field

[0002] The present invention relates to a reproducing apparatus and areproducing method that are suitable for reproducing a program from arecord medium on which both a program that has been reproductionrestricted and a program that has not been reproduction restricted(namely, a program that can be freely reproduced) have been recorded.

[0003] 2. Background Art

[0004] EEPROM (Electrically Erasable Programmable ROM) that is anelectrically rewritable memory requires a large space because each bitis composed of two transistors. Thus, the integration of EEPROM isrestricted. To solve this problem, a flash memory that allows one bit tobe accomplished with one transistor using all-bit-erase system has beendeveloped. The flash memory is being expected as a successor ofconventional record mediums such as magnetic disks and optical discs.

[0005] A memory card using a flash memory is also known. The memory cardcan be freely attached to an apparatus and detached therefrom. A digitalaudio recording/reproducing apparatus that uses a memory card instead ofa conventional CD (Compact Disc: Trademark) or MD (Mini Disc: Trademark)can be accomplished.

[0006] When a user buys commercially available package software forexample a CD, he or she is assured of unlimited duration of reproductionand unlimited number of reproduction times for the package software. Onthe other hand, as audio and video information is digitized and used asmulti media, in recent years, the copyright protection has becomeimportant. In the field of information service, digitized audio andvideo information is recorded on a record medium in such a manner thatsome restriction information is added thereto. In such a format,information is provided to a user. In addition, a service of whichdigitized audio and video information to which some reproductionrestriction information is added is distributed to each user through adigital broadcast or the Internet has been studied. In such acircumstance, for an advertisement, free audio and video informationthat has been reproduction restricted with respect to the duration ofreproduction and the number of reproduction times may be distributed toeach user. In this case, each user can reproduce the audio and videoinformation (called a program or a content) for the duration and thenumber of reproduction times represented in the reproduction restrictioninformation. When a user wants the audio and video information, he orshe can record it to a memory card at a predetermined price.

[0007] In such a situation, there is a possibility of which both aprogram that has not been reproduction restricted (that can freelyreproduced) and a program that has been reproduction restricted arerecorded on one record medium. When a program is reproduced from such arecord medium by a conventional reproducing apparatus, the user willface an inconvenient problem. When the user repeatedly reproducesprograms, he or she can freely reproduce a program that has not beenreproduction restricted. In contrast, when a program that has beenreproduction restricted is reproduced with respect to the number ofreproduction times, after the number of reproduction times of theprogram that has been reproduction restricted exceeds the designatednumber of reproduction times, the program cannot be reproduced. Thus,there is a case that it is preferred to exclude a program that has beenreproduction restricted from a program repeat reproducing operation. Inaddition, there is a method for asking the user whether or not he or shewants to reproduce a program that has been reproduction restricted.However, when a program that has been reproduction restricted is triedto be reproduced, the reproducing operation is stopped and the user isasked whether or not he or she wants to reproduce it. Thus, theoperability of the apparatus deteriorates.

[0008] Therefore, an object of the present invention is to provide areproducing apparatus and a reproducing method that allow the user todesignate an operating method for a program that has been reproductionrestricted.

DISCLOSURE OF THE INVENTION

[0009] To solve the forgoing problem, claim 1 of the present inventionis a reproducing apparatus for reproducing a program from a recordmedium on which a program that has been reproduction restricted withrespect to the number of reproduction times and a program that has notbeen reproduction restricted with respect to the number of reproductiontimes have been recorded, the record medium having a management area formanaging an identifier that represents whether or not a program has beenreproduction restricted with respect to the number of reproductiontimes, the reproducing apparatus comprising:

[0010] a determining means for determining whether or not a program tobe reproduced has been reproduction restricted with respect to thenumber of reproduction times corresponding to the identifier managed inthe management area,

[0011] wherein the reproducing apparatus has a mode designating functionthat allows at least two of a first mode, a second mode, and a thirdmode to be designated, when the determined result of the determiningmeans represents that the program to be reproduced has been reproductionrestricted with respect to the number of reproduction times, the firstmode asking the user whether or not he or she wants to reproduce theprogram, the second mode forcedly prohibiting the program from beingreproduced, the third mode causing the program to be unconditionallyreproduced.

[0012] Claim 4 of the present invention is a reproducing apparatus forreproducing a program from a record medium on which a program that hasbeen reproduction restricted with respect to the number of reproductiontimes and a program that has not been reproduction restricted withrespect to the number of reproduction times have been recorded, therecord medium having a management area for managing an identifier thatrepresents whether or not a program has been reproduction restrictedwith respect to the number of reproduction times, the reproducingapparatus comprising:

[0013] a determining means for determining whether or not a programrepeat reproducing operation has been designated; and

[0014] a controlling means for causing the reproducing apparatus torepeatedly reproduce a program except for a program that has beenreproduction restricted with respect to the number of reproduction timeswhen the determined result of the determining means represents that theprogram repeat reproducing operation has been designated.

[0015] Claim 8 of the present invention is a reproducing apparatus forreproducing a program from a record medium on which a program that hasbeen reproduction restricted with respect to the duration ofreproduction has been recorded, the reproducing apparatus comprising:

[0016] a date and time counting means for counting the date and time;

[0017] an operating means for allowing the user to input date and timeinformation;

[0018] a memory means for storing date and time information that isinput by the operating means;

[0019] a determining means for determining whether or not the date andtime information has been stored in the memory means; and

[0020] a controlling means for prohibiting a program that has beenreproduction restricted with respect to the duration of reproductionfrom being reproduced when the determined result of the determiningmeans represents that the date and time information has not been storedin the memory means.

[0021] Claim 9 of the present invention is a reproducing method forreproducing a program from a record medium on which a program that hasbeen reproduction restricted with respect to the number of reproductiontimes and a program that has not been reproduction restricted withrespect to the number of reproduction times have been recorded, therecord medium having a management area for managing an identifier thatrepresents whether or not a program has been reproduction restrictedwith respect to the number of reproduction times, the reproducing methodcomprising the steps of:

[0022] determining whether or not a program to be reproduced has beenreproduction restricted with respect to the number of reproduction timescorresponding to the identifier managed in the management area,

[0023] wherein the reproducing method has a mode designating functionthat allows at least two of a first mode, a second mode, and a thirdmode to be designated, when the determined result at the determiningstep represents that the program to be reproduced has been reproductionrestricted with respect to the number of reproduction times, the firstmode asking the user whether or not he or she wants to reproduce theprogram, the second mode forcedly prohibiting the program from beingreproduced, the third mode causing the program to be unconditionallyreproduced.

[0024] Claim 12 of the present invention is a reproducing method forreproducing a program from a record medium on which a program that hasbeen reproduction restricted with respect to the number of reproductiontimes and a program that has not been reproduction restricted withrespect to the number of reproduction times have been recorded, therecord medium having a management area for managing an identifier thatrepresents whether or not a program has been reproduction restrictedwith respect to the number of reproduction times, the reproducing methodcomprising the steps of:

[0025] determining whether or not a program repeat reproducing operationhas been designated; and

[0026] causing a program except for a program that has been reproductionrestricted with respect to the number of reproduction times to berepeatedly reproduced when the determined result at the determining steprepresents that the program repeat reproducing operation has beendesignated.

[0027] Claim 16 of the present invention is a reproducing method forreproducing a program from a record medium on which a program that hasbeen reproduction restricted with respect to the duration ofreproduction has been recorded, the reproducing method comprising thesteps of:

[0028] allowing the user to input date and time information;

[0029] storing date and time information that is input to memory means;

[0030] determining whether or not the date and time information has beenstored in the memory means; and

[0031] prohibiting a program that has been reproduction restricted withrespect to the duration of reproduction from being reproduced when thedetermined result at the determining step represents that the date andtime information has not been stored in the memory means.

[0032] According to claims 1 to 7 and 9 to 15 of the present invention,in a mode that the user has designated, a program that has beenreproduction restricted can be reproduced. Thus, a program that has beenreproduction restricted can be prevented from being reproduced againstthe user's will.

BRIEF DESCRIPTION OF DRAWINGS

[0033]FIG. 1 is a block diagram showing a digital audio recorder/playerusing a nonvolatile memory according to the present invention; FIG. 2 isan internal block diagram showing a DSP according to the presentinvention; FIG. 3 is an internal block diagram showing a memory cardaccording to the present invention; FIG. 4 is a schematic diagramshowing a file management structure of a storage medium as the memorycard according to the present invention; FIG. 5 is a schematic diagramshowing a physical structure of data stored in a flash memory disposedin the memory card according to the present invention; FIG. 6 is aschematic diagram showing a data structure of the memory card accordingto the present invention; FIG. 7 is a hierarchical schematic diagramshowing the structure of files stored in the memory card; FIG. 8 is aschematic diagram showing a data structure of a reproduction managementfile PBLIST.MSF as a subdirectory stored in the memory card; FIG. 9 is aschematic diagram showing a data structure of which one successiveATRAC3 data file is divided into blocks at intervals of a predeterminedunit length and an attribute file is added to each of the blocks; FIG.10 is a schematic diagram for explaining a combine editing process and adivide editing process according to the present invention; FIG. 11 is aschematic diagram showing the data structure of the reproductionmanagement file PBLIST; FIG. 12 is a schematic diagram showing the datastructure of the reproduction management file PBLIST; FIG. 13 is aschematic diagram showing a table representing the relation of types ofadditional information data; FIG. 14 is a schematic diagram showing atable representing the relation of types of additional information data;FIG. 15 is a schematic diagram showing a table representing the relationof types of additional information data; FIG. 16 is a schematic diagramshowing the data structure of additional information data; FIG. 17 is aschematic diagram showing a detailed data structure of an ATRAC3 datafile; FIG. 18 is a schematic diagram showing the data structure of anupper portion of an attribute header that composes an ATRAC3 data file;FIG. 19 is a schematic diagram showing the data structure of a middleportion of the attribute header the composes an ATRAC3 data file; FIG.20 is a schematic diagram showing a table representing types ofrecording modes, record durations thereof, and so forth; FIG. 21 is aschematic diagram showing a table representing copy control states; FIG.22 is a schematic diagram showing the data structure of a lower portionof the attribute header that composes an ATRAC3 data file; FIG. 23 is aschematic diagram showing the data structure of a header of a data blockof an ATRAC3 data file; FIG. 24 is a schematic diagram showing a flowchart representing a method for recovering a destroyed FAT areaaccording to the present invention; FIG. 25 is a hierarchical schematicdiagram showing another example of the file structure of files stored inthe memory card 40; FIG. 26 is a schematic diagram showing the relationbetween a track information management file TRKLIST.MSF and an ATRAC3data file A3Dnnnnn.MSA; FIG. 27 is a schematic diagram showing adetailed data structure of the track information management fileTRKLIST.MSF; FIG. 28 is a schematic diagram showing a detailed datastructure of NAME1 that manages a name; FIG. 29 is a schematic diagramshowing the detailed data structure showing NAME2 that manages a name;FIG. 30 is a schematic diagram showing the detailed data structure of anATRAC3 data file A3Dnnnnn.MSA; FIG. 31 is a schematic diagram showingthe detailed data structure of INFLIST.MSF that represents additionalinformation; FIG. 32 is a schematic diagram showing the detailed datastructure of INFLIST.MSF that represents additional information data;FIG. 33 is a schematic diagram showing a method for recovering adestroyed FAT area in another data structure according to the presentinvention; FIG. 34 is a schematic diagram showing a flow chart forexplaining a process for designating a reproducing mode for a programthat has been reproduction restricted according to an embodiment of thepresent invention; FIG. 35 is a schematic diagram for explaining anexample of the data structure for which a reproduction log is recorded;FIG. 36 is a schematic diagram showing a flow chart for explaining areproducing process for a program that has been reproduction restrictedaccording to an embodiment of the present invention; FIG. 37 is aschematic diagram showing a flow chart for explaining a reproducingprocess for a program that has been reproduction restricted according toa ramification of the embodiment of the present invention; and FIG. 38is a schematic diagram showing a practical system structure according tothe embodiment of the present invention.

BEST MODES FOR CARRYING OUT THE INVENTION

[0034] Next, an embodiment of the present invention will be described.FIG. 1 is a block diagram showing the structure of a digital audiorecorder/player using a memory card according to an embodiment of thepresent invention. The digital audio recorder/player records andreproduces a digital audio signal using a detachable memory card. Inreality, the recorder/player composes an audio system along with anamplifying unit and a speaker. However, it should be noted that thepresent invention can be applied to other audio recorders. In otherwords, the present invention can be applied to a portablerecording/reproducing apparatus. In addition, the present invention canbe applied to a set top box that records a digital audio data that iscirculated as a satellite data communication, a digital broadcast, orInternet. Moreover, the present invention can be applied to a systemthat records/reproduces moving picture data and still picture datarather than audio data. The system according to the embodiment of thepresent invention can record and reproduce additional information suchas picture and text other than a digital audio signal.

[0035] The recording/reproducing apparatus has an audio encoder/decoderIC 10, a security IC 20, a DSP (Digital Signal Processor) 30. Each ofthese devices is composed of a one-chip IC. The recording/reproducingapparatus has a detachable memory card 40. The one-chip IC of the memorycard 40 has flash memory (nonvolatile memory), a memory control block,and a security block. The security block has a DES (Data EncryptionStandard) encrypting circuit. According to the embodiment, therecording/reproducing apparatus may use a microcomputer instead of theDSP 30.

[0036] The audio encoder/decoder IC 10 has an audio interface 11 and anencoder/decoder block 12. The encoder/decoder block 12 encodes a digitalaudio data corresponding to a highly efficient encoding method andwrites the encoded data to the memory card 40. In addition, theencoder/decoder block 12 decodes encoded data that is read from thememory card 40. As the highly efficient encoding method, the ATRAC3format that is a modification of the ATRAC (Adaptive Transform AcousticCoding) format used in Mini-Disc is used.

[0037] In the ATRAC3 format, audio data sampled at 44.1 kHz andquantized with 16 bits is highly efficiently encoded. In the ATRAC3format, the minimum data unit of audio data that is processed is a soundunit (SU). 1 SU is data of which data of 1024 samples (1024×16 bits×2channels) is compressed to data of several hundred bytes. The durationof 1 SU is around 23 msec. In the highly efficient encoding method, thedata amount of audio data is compressed to data that is around 10 timessmaller than that of original data. As with the ATRAC1 format used inMini-Disc, the audio signal compressed and decompressed corresponding tothe ATRAC3 format less deteriorates in the audio quality.

[0038] A line input selector 13 selectively supplies the reproductionoutput signal of an MD, the output signal of a tuner, or a reproductionoutput signal of a tape to an A/D converter 14. The A/D converter 14converts the input line signal to a digital audio signal (samplingfrequency=44.1 kHz; the number of quantizing bits=16). A digital inputselector 16 selectively supplies a digital output signal of an MD, a CD,or a CS (Satellite Digital Broadcast) to a digital input receiver 17.The digital input signal is transmitted through for example an opticalcable. An output signal of the digital input receiver 17 is supplied toa sampling rate converter 15. The sampling rate converter 15 convertsthe digital input signal into a digital audio signal (samplingfrequency=44.1 kHz; the number of quantizing bits=16).

[0039] The encoder/decoder block 12 of the audio encoder/decoder IC 10supplies encoded data to a DES encrypting circuit 22 through aninterface 21 of the security IC 20. The DES encrypting circuit 22 has aFIFO 23. The DES encrypting circuit 22 is disposed so as to protect thecopyright of contents. The memory card 40 also has a DES encryptingcircuit. The DES encrypting circuit 22 of the recording/reproducingapparatus has a plurality of master keys and an apparatus-unique storagekey. The DES encrypting circuit 22 also has a random number generatingcircuit. The DES encrypting circuit 22 can share an authenticatingprocess and a session key with the memory card 40 that has the DESencrypting circuit. In addition, the DES encrypting circuit 22 canre-encrypt data with the storage key of the DES encrypting circuit.

[0040] The encrypted audio data that is output from the DES encryptingcircuit 22 is supplied to a DSP (Digital Signal Processor) 30. The DSP30 communicates with the memory card 40 through an interface. In thisexample, the memory card 40 is attached to an attaching/detachingmechanism (not shown) of the recording/reproducing apparatus. The DSP 30writes the encrypted data to the flash memory of the memory card 40. Theencrypted data is serially transmitted between the DSP 30 and the memorycard 40. In addition, an external SRAM (Static Random Access Memory) 31is connected to the DSP 30. The SRAM 31 provides therecording/reproducing apparatus with a sufficient storage capacity so asto control the memory card 40.

[0041] In addition, encrypted ATRAC3 data is supplied from an externalpersonal computer (not shown) to the DSP 30 through an interface 33.When predetermined application software is installed to the externalpersonal computer, it can capture audio file and so forth compressedcorresponding to EMD (Electronic Music Distribution), music CD, or MP3(MPEG1 Audio Layer III) to a hard disk, converts the captured data intoATRAC3 format data, encrypts the converted data, and outputs theencrypted data.

[0042] Reference numeral 32 represents a system controller that controlsthe operation of the entire audio system shown in FIG. 1 and suppliesdata such as a record command, a reproduction command, and so forthgenerated in the operation portion corresponding to a user's operation.The system controller 32 is composed of a CPU (Central Processing Unit).The system controller 32 has a nonvolatile memory 32 a. In addition,data of additional information for video information and characterinformation is supplied to the DSP 30 through the system controller 32.

[0043] The encrypted ATRAC3 data that is read from the memory card 40 bythe DSP 30 is decrypted by the security IC 20. The audio encoder/decoderIC 10 decodes the encoded data corresponding to the ATRAC3 format.Output data of the audio encoder/decoder 10 is supplied to a D/Aconverter 18. The D/A converter 18 converts the output data of the audioencoder/decoder 10 into an analog audio signal. The analog audio signalis supplied to a line output terminal 19. The analog audio signal issupplied to an amplifying unit (not shown) through the line outputterminal 19. The analog audio signal is reproduced from a speaker or ahead set. The external controller supplies a muting signal to the D/Aconverter 18. When the muting signal represents a mute-on state, theexternal controller prohibits the audio signal from being output fromthe line output terminal 19.

[0044] In addition, encrypted ATRAC3 data that is read from the memorycard 40 is supplied from the DSP 30 to the external personal computerthrough an interface 33. The ATRAC3 data is stored in a hard disk of thepersonal computer.

[0045]FIG. 2 is a block diagram showing the internal structure of theDSP 30. Referring to FIG. 2, the DSP 30 comprises a core 34, a flashmemory 35, an SRAM 36, a bus interface 37, a memory card interface 38,and inter-bus bridges. The DSP 30 has the same function as amicrocomputer. The core 34 is equivalent to a CPU. The flash memory 35stores a program that causes the DSP 30 to perform predeterminedprocesses. The SRAM 36 and the external SRAM 31 are used as a RAM of therecording/reproducing apparatus.

[0046] The DSP 30 controls a writing process for writing encrypted audiodata and additional information to the memory card 40 corresponding toan operation signal such as a record command received from the systemcontroller 32 and a reading process for reading them therefrom. In otherwords, the DSP 30 is disposed between the application software side ofthe audio system that records/reproduces audio data and additionalinformation and the memory card 40. The DSP 30 is operated when thememory card 40 is accessed. In addition, the DSP 30 is operatedcorresponding to software such as a file system.

[0047] The DSP 30 manages files stored in the memory card 40 with theFAT system used in conventional personal computers. In addition to thefile system, according to the embodiment of the present invention, amanagement file is used. The management file will be descried later. Themanagement file is used to manage data files stored in the memory card40. The management file as the first file management information is usedto manage audio data files. On the other hand, the FAT as the secondfile management information is used to mange all files including audiodata files and management files stored in the flash memory of the memorycard 40. The management file is stored in the memory card 40. The FAT iswritten to the flash memory along with the route directory and so forthbefore the memory card 40 is shipped. The details of the FAT will bedescribed later.

[0048] According to the embodiment of the present invention, to protectthe copyright of data, audio data that has been compressed correspondingto the ATRAC3 format is encrypted. On the other hand, since it is notnecessary to protect the copyright of the management file, it is notencrypted. There are two types of memory cards that are an encryptiontype and a non-encryption type. However, a memory card for use with therecorder/player that records copyright protected data is limited to theencryption type. Voice data and image data that are recorded by usersare recorded on non-encryption type memory cards.

[0049]FIG. 3 is a block diagram showing the internal structure of thememory card 40. The memory card 40 comprises a control block 41 and aflash memory 42 that are structured as a one-chip IC. A bidirectionalserial interface is disposed between the DSP 30 of the recorder/playerand the memory card 40. The bidirectional serial interface is composedof ten lines that are a clock line SCK for transmitting a clock signalthat is transmitted along with data, a status line SBS for transmittinga signal that represents a status, a data line DIO for transmittingdata, an interrupt line INT, two GND lines, two VCC lines, and tworeserved lines.

[0050] The clock line SCK is used for transmitting a clock signal insynchronization with data. The status line SBS is used for transmittinga signal that represents the status of the memory card 40. The data lineDIO is used for inputting and outputting a command and encrypted audiodata. The interrupt line INT is used for transmitting an interruptsignal that causes the memory card 40 to interrupt the DSP 30 of therecorder/player. When the memory card 40 is attached to therecorder/player, the memory card 40 generates the interrupt signal.However, according to the embodiment of the present invention, since theinterrupt signal is transmitted through the data line DIO, the interruptline INT is grounded.

[0051] A serial/parallel converting, parallel/serial converting, andinterface block (S/P, P/S, I/F block) 43 is an interface disposedbetween the DSP 30 of the recorder/player and the control block 41 ofthe memory card 40. The S/P, P/S, and IF block 43 converts serial datareceived from the DSP 30 of the recorder/player into parallel data andsupplies the parallel data to the control block 41. In addition, theS/P, P/S, and IF block 43 converts parallel data received from thecontrol block 41 into serial data and supplies the serial data to theDSP 30. When the S/P, P/S, and IF block 43 receives a command and datathrough the data line DIO, the S/P, P/S, and IF block 43 separates theminto these that are normally accessed to the flash memory 42 and thosethat are encrypted.

[0052] In the format of which data is transmitted through the data lineDIO, after a command is transmitted, data is transmitted. The S/P, P/S,and IF block 43 detects the code of a command and determines whether thecommand and data are those that are normally accessed or those that areencoded. Corresponding to the determined result, the S/P, P/S, and IFblock 43 stores a command that is normally accessed to a commandregister 44 and stores data that is normally accessed to a page buffer45 and a write register 46. In association with the write register 46,the memory card 40 has an error correction code encoding circuit 47. Theerror correction code encoding circuit 47 generates a redundant codethat is an error correction code for data temporarily stored in the pagebuffer 45.

[0053] Output data of the command register 44, the page buffer 45, thewrite register 46, and the error correction code encoding circuit 47 issupplied to a flash memory interface and sequencer (hereinafter,referred to as memory I/F and sequencer) 51. The memory IF and sequencer51 is an interface disposed between the control block 41 and the flashmemory 42 and controls data exchanged therebetween. Data is written tothe flash memory through the memory IF and sequencer 51.

[0054] Audio data that has been compressed corresponding to the ATRAC3format and written to the flash memory (hereinafter, this audio data isreferred to as ATRAC3 data) is encrypted by the security IC 20 of therecorder/player and the security block 52 of the memory card 40 so as toprotect the copyright of the ATRAC3 data. The security block 52comprises a buffer memory 53, a DES encrypting circuit 54, and anonvolatile memory 55.

[0055] The security block 52 of the memory card 40 has a plurality ofauthentication keys and a unique storage key for each memory card. Thenonvolatile memory 55 stores a key necessary for encrypting data. Thekey stored in the nonvolatile memory 55 cannot be analyzed. According tothe embodiment, for example, a storage key is stored in the nonvolatilememory 55. The security block 52 also has a random number generatingcircuit. The security block 52 authenticates an applicablerecorder/player and shares a session key therewith. In addition, thesecurity block 52 re-encrypts contents with the storage key through theDSE encrypting circuit 54.

[0056] For example, when the memory card 40 is attached to therecorder/player, they are mutually authenticated. The security IC 20 ofthe recorder/player and the security block 52 of the memory card 40mutually authenticate. When the recorder/player has authenticated theattached memory card 40 as an applicable memory card and the memory card40 has authenticated the recorder/player as an applicablerecorder/player, they are mutually authenticated. After the mutualauthenticating process has been successfully performed, therecorder/player and the memory card 40 generate respective session keysand share them with each other. Whenever the recorder/player and thememory card 40 authenticate each other, they generate respective sessionkeys.

[0057] When contents are written to the memory card 40, therecorder/player encrypts a contents key with a session key and suppliesthe encrypted data to the memory card 40. The memory card 40 decryptsthe contents key with the session key, re-encrypts the contents key witha storage key, and supplies the contents key to the recorder/player. Thestorage key is a unique key for each memory card 40. When therecorder/player receives the encrypted contents key, the recorder/playerperforms a formatting process for the encrypted contents key, and writesthe encrypted contents key and the encrypted contents to the memory card40.

[0058] In the above section, the writing process for the memory card 40was described. In the following, the reading process for the memory card40 will be described. Data that is read from the flash memory 42 issupplied to the page buffer 45, the read register 48, and the errorcorrection circuit 49 through the memory IF and the sequencer 51. Theerror correcting circuit 49 corrects an error of the data stored in thepage buffer 45. Output data of the page buffer 45 that has beenerror-corrected and the output data of the read register 48 are suppliedto the S/P, P/S, and IF block 43. The output data of the S/P, P/S, andIF block 43 is supplied to the DSP 30 of the recorder/player through theabove-described serial interface.

[0059] When data is read from the memory card 40, the contents keyencrypted with the storage key and the contents encrypted with the blockkey are read from the flash memory 42. The security block 52 decryptsthe contents key with the storage key. The security block 52 re-encryptsthe decrypted content key with the session key and transmits there-encrypted contents key to the recorder/player. The recorder/playerdecrypts the contents key with the received session key and generates ablock key with the decrypted contents key. The recorder/playersuccessively decrypts the encrypted ATRAC3 data.

[0060] A config. ROM 50 is a memory that stores partition information,various types of attribute information, and so forth of the memory card40. The memory card 40 also has an erase protection switch 60. When theswitch 60 is in the erase protection position, even if a command thatcauses the memory card 40 to erase data stored in the flash memory 42 issupplied from the recorder/player side to the memory card 40, the memorycard 40 is prohibited from erasing the data stored in the flash memory42. An OSC cont. 61 is an oscillator that generates a clock signal thatis the reference of the timing of the process of the memory card 40.

[0061]FIG. 4 is a schematic diagram showing the hierarchy of theprocesses of the file system of the computer system that uses a memorycard as a storage medium. On the hierarchy, the top hierarchical levelis an application process layer. The application process layer isfollowed by a file management process layer, a logical addressmanagement layer, a physical address management layer, and a flashmemory access layer. In the above-mentioned hierarchical structure, thefile management process layer is the FAT system. Physical addresses areassigned to individual blocks of the flash memory. The relation betweenthe blocks of the flash memory and the physical addresses thereof doesnot vary. Logical addresses are addresses that are logically handled onthe file management process layer.

[0062]FIG. 5 is a schematic diagram showing the physical structure ofdata handled in the flash memory 42 of the memory card 40. In the memory42, a data unit (referred to as segment) is divided into a predeterminednumber of blocks (fixed length). One block is divided into apredetermined number of pages (fixed length). In the flash memory, datais erased as each block at a time. Data is written to the flash memory42 or read therefrom as a page at a time. The size of each block is thesame. Likewise, the size of each page is the same. One block is composedof page 0 to page m. For example, one block has a storage capacity offor example 8 KB (kilobytes) or 16 KB. One page has a storage capacityof 512 B (bytes). When one block has a storage capacity of 8 KB, thetotal storage capacity of the flash memory 42 is 4 MB (512 blocks) or 8MB (1024 blocks). When one block has a storage capacity of 16 KB, thetotal storage capacity of the flash memory 42 is 16 MB (1024 blocks), 32MB (2048 blocks), or 64 MB (4096 blocks).

[0063] One page is composed of a data portion of 512 bytes and aredundant portion of 16 bytes. The first three bytes of the redundantportion is an overwrite portion that is rewritten whenever data isupdated. The first three bytes successively contain a block status area,a page status area, and an update status area. The remaining 13 bytes ofthe redundant portion are fixed data that depends on the contents of thedata portion. The 13 bytes contain a management flag area (1 byte), alogical address area (2 bytes), a format reserve area (5 bytes), adispersion information ECC area (2 bytes), and a data ECC area (3bytes). The dispersion information ECC area contains redundant data foran error correction process against the management flag area, thelogical address area, and the format reserve area. The data ECC areacontains redundant data for an error correction process against 512-bytedata.

[0064] The management flag area contains a system flag (1: user block,0: boot block), a conversion table flag (1: invalid, 0: table block), acopy prohibition flag (1: OK, 0: NG), and an access permission flag (1:free, 0: read protect).

[0065] The first two blocks—blocks 0 and 1 are boot blocks. The block 1is a backup of the block 0. The boot blocks are top blocks that arevalid in the memory card. When the memory card is attached to therecorder/player, the boot blocks are accessed at first. The remainingblocks are user blocks. Page 0 of the boot block contains a header area,a system entry area, and a boot and attribute information area. Page 1of the boot block contains a prohibited block data area. Page 2 of theboot block contains a CIS (Card Information Structure)/IDI (identifyDrive Information) area.

[0066] The header area of the boot block contains a boot block ID andthe number of effective entries. The system entries are the startposition of prohibited block data, the data size thereof, the data typethereof, the data start position of the CIS/IDI area, the data sizethereof, and the data type thereof. The boot and attribute informationcontains the memory card type (read only type, rewritable type, orhybrid type), the block size, the number of blocks, the number of totalblocks, the security/non-security type, the card fabrication data (dateof fabrication), and so forth.

[0067] Since the flash memory has a restriction for the number ofrewrite times due to the deterioration of the insulation film, it isnecessary to prevent the same storage area (block) from beingconcentratedly accessed. Thus, when data at a particular logical addressstored at a particular physical address is rewritten, updated data of aparticular block is written to a non-used block rather than the originalblock. Thus, after data is updated, the relation between the logicaladdress and the physical address changes. This process is referred to asswap process. Consequently, the same block is prevented from beingconcentratedly accessed. Thus, the service life of the flash memory canbe prolonged.

[0068] The logical address associates with data written to the block.Even if the block of the original data is different from the block ofupdated data, the address on the FAT does not change. Thus, the samedata can be properly accessed. However, since the swap process isperformed, a conversion table that correlates logical addresses andphysical addresses is required (this table is referred to aslogical-physical address conversion table). With reference to thelogical-physical address conversion table, a physical addresscorresponding to a logical address designated on the FAT is obtained.Thus, a block designated with a physical address can be accessed.

[0069] The DSP 30 stores the logical-physical address conversion tablein the SRAM. When the storage capacity of the RAM is small, thelogical-physical address conversion table can be stored to the flashmemory. The logical-physical address conversion table correlates logicaladdresses (2 bytes) sorted in the ascending order with physicaladdresses (2 bytes). Since the maximum storage capacity of the flashmemory is 128 MB (8192 blocks), 8192 addresses can be assigned with twobytes. The logical-physical address conversion table is managed for eachsegment. Thus, the size of the logical-physical address conversion tableis proportional to the storage capacity of the flash memory. When thestorage capacity of the flash memory is 8 MB (two segments), two pagesare used as the logical-physical address conversion table for each ofthe segments. When the conversion table is stored in the flash memory, apredetermined one bit of the management flag area in the redundantportion in each page represents whether or not the current block is ablock containing the logical-physical address conversion table.

[0070] The above-described memory card can be used with the FAT systemof a personal computer system as with the disc shaped record medium. Theflash memory has an IPL area, a FAT area, and a route directory area(not shown in FIG. 5). The IPL area contains the address of a program tobe initially loaded to the memory of the recorder/player. In addition,the IPL area contains various types of memory information. The FAT areacontains information with respect to blocks (clusters). The FAT hasdefined unused blocks, next block number, defective blocks, and lastblock number. The route directory area contains directory entries thatare a file attribute, an update date [day, month, year], file size, andso forth.

[0071] Next, with reference to FIG. 6, a managing method using the FATtable will be described. FIG. 6 is a schematic diagram showing a memorymap. The top area of the memory map is a partition table portion. Thepartition table portion is followed by a block area, a boot sector, aFAT area, a FAT backup area, a root directory area, a sub directoryarea, and a data area. On the memory map, logical addresses have beenconverted into physical addresses corresponding to the logical-physicaladdress conversion table.

[0072] The boot sector, the FAT area, the FAT backup area, the rootdirectory area, the sub directory area, and the data area arecollectively referred to as FAT partition area.

[0073] The partition table portion contains the start address and theend address of the FAT partition area. The FAT used for a conventionalfloppy disk does not have such a partition table. Since the first trackhas only a partition table, there is a blank area.

[0074] The boot sector contains the size of the FAT structure (12 bitFAT or 16 bit FAT), the cluster size, and the size of each area. The FATis used to manage the position of a file recorded in the data area. Thecopy area of the FAT is a backup area of the FAT. The route directoryarea contains file names, start cluster addresses thereof, and variousattributes thereof. The route directory area uses 32 bytes per file.

[0075] The sub directory area is a directory attribute file as adirectory. In the embodiment shown in FIG. 6, the sub directory area hasfour files named PBLIST.MSF, CAT.MSA, DOG.MSA, and MAN.MSF. The subdirectory area is used to manage file names and their record positionson the FAT. In other words, the slot of the file name CAT.MSA isassigned address “5” on the FAT. The slot of the file name DOG.MSA isassigned address “10” on the FAT.

[0076] An area after cluster 2 is used as a data area. In thisembodiment, audio data that has been compressed corresponding to theATRAC3 format is recorded in the data area. A slot of the file nameMAN.MSA is assigned address “110” on the FAT.

[0077] According to the embodiment of the present invention, audio datathat has been compressed corresponding to the ATRAC3 format and that hasthe file name CAT.MSA is recorded in clusters 5, 6, 7, and 8. Audio dataof DOG-1 as the first half of a file that has been compressedcorresponding to the ATAC3 format and that has the file name DOG.MSA isrecorded in clusters 10, 11, and 12. Audio data DOG-2 as the second halfof the file that has been compressed corresponding to the ATRAC3 formatand that has the file name DOG.MSA is recorded in clusters 100 and 101.Audio data that has been compressed corresponding to the ATRAC3 formatand that has the file name MAN.MSA is recorded in clusters 110 and 111.

[0078] According to the embodiment of the present invention, an exampleof which a single file is divided into two portions and dispersedlyrecorded is described. In the example, an area “Empty” in the data areais a recordable area.

[0079] An area after cluster 200 is used for managing file names. Thefile CAT.MSA is recorded in cluster 200. The file DOG.MSA is recorded incluster 201. The file MAN.MSA is recorded in cluster 202. When thepositions of the files are changed, the area after cluster 200 isrearranged.

[0080] When the memory card is attached at the first time, the beginningand the end of the FAT partition area are recorded with reference to thetop partition table portion. After the boot sector portion isreproduced, the root directory area and the sub directory area arereproduced. The slot of the reproduction management informationPBLIST.MSF in the sub directory area is detected so as to reference theaddress of the end portion of the slot of the file PBLIST.MSF.

[0081] According to the embodiment, since address “200” is recorded atthe end of the slot of the file PBLIST.MSF, cluster 200 is referenced.The area after cluster 200 is used for managing file names and thereproduction order thereof. According to the embodiment, the fileCAT.MSA is the first program. The file DOG.MSA is the second program.The file MAN.MSA is the third program.

[0082] After all the areas after cluster 200 are referenced, in thesubdirectory, slots of the files CAT.MSA, DOG.MSA, and MAN.MSA arereferenced. In FIG. 6, the end of the slot of the file name CAT.MSA isassigned address “5”. The end of the slot of the file DOG.MSA isassigned address “10”. The end of the slot of the file MAN.MSA isassigned address “110”.

[0083] When an entry address is searched on the FAT with address “5”recorded at the end of the slot of the file name CAT.MSA, clusteraddress “6” is obtained. When an entry address is searched on the FATwith address “6”, cluster address “7” is obtained. When an entry addressis searched on the FAT with address “8”, code “FFF” that represents theend is obtained.

[0084] Thus, the file CAT.MSA uses clusters 5, 6, 7, and 8. Withreference to clusters 5, 6, 7, and 8 in the data area, an area of ATRAC3data with the file name CAT.MSA can be accessed.

[0085] Next, a method for searching the file DOG.MSA that has beendispersedly recorded will be described. The end of the slot of the fileDOG.MSA is assigned address “10”. When an entry address is searched onthe FAT with address “10”, cluster address “11” is obtained. When anentry address is searched on the FAT with address “11”, cluster address“12” is obtained. When an entry address is searched on the FAT withaddress “12”, cluster address “100” is obtained. When an entry addressis searched on the FAT with address “100”, cluster address “101” isobtained. When an entry address is searched on the FAT with address“101”, code “FFF” that represents the end is obtained.

[0086] Thus, the file DOG.MSA uses clusters 10, 11, 12, 100, and 101.When clusters 10, 11, and 12 of the data area are referenced, an area ofATRAC3 data corresponding to the first part of the file DOG.MSA can beaccessed. When clusters 100 and 101 of the data area are referenced, anarea of ATRAC3 data corresponding to the second part of the file DOG.MSAcan be accessed.

[0087] In addition, when an entry address is searched on the FAT withaddress “110” recorded at the end of the slot of the file name MAN.MSA,cluster address “111” is obtained. When an entry address is searched onthe FAT with address “111”, code “FFF” that represents the end isobtained.

[0088] Thus, the file MAN.MSA uses clusters 110 and 111. When clusters110 and 111 of the data area are referenced, an area of ATRAC3 data ofthe file MAN.MSA can be accessed.

[0089] As described above, a data file dispersed in the flash memory canbe linked and sequentially reproduced.

[0090] According to the embodiment of the present invention, in additionto the file management system defined in the format of the memory card40, a management file is used for managing tracks as music files andparts thereof. The management file is recorded in the flash memory 42using a user block of the memory card 40. Thus, as will be describedlater, even if the FAT of the memory card 40 is destroyed, a file can berecovered.

[0091] The management file is created by the DSP 30. For example, whenthe power of the recorder/player is turned on at the first time, the DSP30 determines whether or not the memory card 40 has been attached to therecorder/player. When the memory card has been attached, the DSP 30authenticates the memory card 40. When the DSP 30 has successfullyauthenticated the memory card 40, the DSP 30 reads a boot block of theflash memory 42. Thereafter, the DSP 30 reads a physical address—logicaladdress conversion table and stores the read data to the SRAM. The datathat has been read to the DSP 30 is stored in an SRAM. Before the memorycard is shipped, the FAT and the route directory have been alreadywritten to the flash memory of the memory card 40. On the other hand,when data is recorded to the memory card 40, the management file iscreated.

[0092] In other words, a record command issued by the user's remotecontroller or the like is supplied from the system controller 32 to theDSP 30. The encoder/decoder IC 10 compresses the received audio data andsupplies the resultant ATRAC3 data to the security IC 20. The securityIC 20 encrypts the ATRAC3 data. The encrypted ATRAC3 data is recorded tothe flash memory 42 of the memory card 40. Thereafter, the FAT and themanagement file are updated. Whenever a file is updated (in reality,whenever the recording operation of audio data is started andcompleted), the FAT and the management file stored in the SRAMs 31 and36 are rewritten. When the memory card 40 is detached from therecorder/player or its power is turned off, the latest FAT andmanagement file that are supplied from the SRAMs 31 and 36 are recordedto the flash memory 42. Alternatively, whenever the recording operationof audio data is started and completed, the FAT and the management filestored in the flash memory 42 may be rewritten. In addition, when audiodata is edited, the contents of the management file are updated.

[0093] In the data structure according to the embodiment, additionalinformation is created and updated in the management file. Theadditional information is recorded to the flash memory 42. In anotherdata structure of the management file, an additional informationmanagement file is independently created besides the track managementfile. The additional information is supplied from the system controller32 to the DSP 30. The additional information received by the bSP 30 isrecorded to the flash memory 42 of the memory card 40. Since theadditional information is not supplied to the security IC 20, it is notencrypted. When the memory card 40 is detached from the recorder/playeror its power is turned off, the additional information is written fromthe SRAM of the DSP 30 to the flash memory 42.

[0094]FIG. 7 is a schematic diagram showing the file structure of thememory card 40. The memory card 40 has directories that are a stillpicture directory, a moving picture directory, a voice directory, acontrol directory, and a music (HIFI) directory. According to theembodiment, since music programs are recorded and reproduced, thefollowing description focuses on the music directory. The musicdirectory has two types of files. The first type is a reproductionmanagement file BLIST.MSF (hereinafter, abbreviated as PBLIST). Theother type is an ATRAC3 data file A3Dnnnn.MSA (hereinafter, abbreviatedas A3Dnnn) that contains encrypted music data. The music directory cancontain up to 400 ATRAC3 data files (namely, 400 music programs). ATRAC3data files are registered to the reproduction management file andcreated by the recorder/player.

[0095]FIG. 8 is a schematic diagram showing the structure of thereproduction management file. FIG. 9 is a schematic diagram showing thestructure of one ATRAC3 data file. The reproduction management file is afixed-length file of 16 KB. An ATRAC3 data file is created for eachmusic program and composed of an attribute header at the beginning andan encrypted music data area preceded thereby. The attribute data has afixed length of 16 KB. The structure of the attribute header is similarto that of the reproduction management file.

[0096] The reproduction management file shown in FIG. 8 is composed of aheader, a memory card name NM-1S (for one byte code), a memory card nameNM2-S (for two byte code), a program reproduction sequence table TRKTBL,and memory card additional information INF-S. The attribute header(shown in FIG. 9) at the beginning of the data file is composed of aheader, a program name NM1 (for one byte code), a program name NM2 (fortwo byte code), track information TRKINF (such as track keyinformation), part information PRTINF, and track additional informationINF. The header contains information of the number of total parts, theattribute of the name, the size of the additional information, and soforth.

[0097] The attribute data is followed by ATRAC3 music data. The musicdata is block-segmented every 16 KB. Each block starts with a header.The header contains an initial value for decrypting encrypted data. Onlymusic data of an ATRAC3 data file is encrypted. Thus, other data such asthe reproduction management file, the header, and so forth are notencrypted.

[0098] Next, with reference to FIGS. 10A to 10C, the relation betweenmusic programs and ATRAC3 data files will be described. One track isequivalent to one music program. In addition, one music program iscomposed of one ATRAC3 data (see FIG. 9). The ATRAC3 data file is audiodata that has been compressed corresponding to the ATRAC3 format. TheATRAC3 data file is recorded as a cluster at a time to the memory card40. One cluster has a capacity of 16 KB. A plurality of files are notcontained in one cluster. The minimum data erase unit of the flashmemory 42 is one block. In the case of the memory card 40 for musicdata, a block is a synonym of a cluster. In addition, one cluster isequivalent to one sector.

[0099] One music program is basically composed of one part. However,when a music program is edited, one music program may be composed of aplurality of parts. A part is a unit of data that is successivelyrecorded. Normally, one track is composed of one part. The connection ofparts of a music program is managed with part information PRTINF in theattribute header of each music program. In other words, the part size isrepresented with part size PRTSIZE (4 bytes) of the part informationPRTINF. The first two bytes of the part size PRTSIZE represents thenumber of total clusters of the current part. The next two bytesrepresent the positions of the start sound unit (SU) and the end soundunit (SU) of the beginning and last clusters, respectively. Hereinafter,a sound unit is abbreviated as SU. With such a part notation, when musicdata is edited, the movement of the music data can be suppressed. Whenmusic data is edited for each block, although the movement thereof canbe suppressed, the edit unit of a block is much larger than the editunit of a SU.

[0100] SU is the minimum unit of a part. In addition, SU is the minimumdata unit in the case that audio data is compressed corresponding to theATRAC3 format. 1 SU is audio data of which data of 1024 samples at 44.1kHz (1024×16 bits×2 channels) is compressed to data that is around 10times smaller than that of original data. The duration of 1 SU is around23 msec. Normally, one part is composed of several thousand SU. When onecluster is composed of 42 SU, one cluster allows a sound of one secondto be generated. The number of parts composing one track depends on thesize of the additional information. Since the number of parts isobtained by subtracting the header, the program name, the additionaldata, and so forth from one block, when there is no additionalinformation, the maximum number of parts (645 parts) can be used.

[0101]FIG. 10A is a schematic diagram showing the file structure in thecase that two music programs of a CD or the like are successivelyrecorded. The first program (file 1) is composed of for example fiveclusters. Since one cluster cannot contain two files of the firstprogram and the second program, the file 2 starts from the beginning ofthe next cluster. Thus,the end of the part 1 corresponding to the file 1is in the middle of one cluster and the remaining area of the clustercontains no data. Likewise, the second music program (file 2) iscomposed of one part. In the case of the file 1, the part size is 5. Thefirst cluster starts at 0-th SU. The last cluster ends at 4-th SU.

[0102] There are four types of edit processes that are a divide process,a combine process, an erase process, and a move process. The divideprocess is performed to divide one track into two portions. When thedivide process is performed, the number of total tracks increases byone. In the divide process, one file is divided into two files on thefile system. Thus, in this case, the reproduction management file andthe FAT are updated. The combine process is performed to combine twotracks into one track. When the combine process is performed, the numberof total tracks decreases by one. In the combine process, two files arecombined into one file on the file system. Thus, when the combineprocess is performed, the reproduction management file and the FAT areupdated. The erase process is performed to erase a track. The tracknumbers after the track that has been erased decrease one by one. Themove process is performed to change the track sequence. Thus, when theerase process or the move process is performed, the reproductionmanagement file and the FAT are updated.

[0103]FIG. 10B is a schematic diagram showing the combined result of twoprograms (file 1 and file 2) shown in FIG. 10A. As a result of thecombine process, the combined file is composed of two parts. FIG. 10C isa schematic diagram showing the divided result of which one program(file 1) is divided in the middle of the cluster 2. By the divideprocess, the file 1 is composed of clusters 0, 1, and the beginningportion of cluster 2. The file 2 is composed of the end portion ofcluster 2 and clusters 3 and 4.

[0104] As described above, according to the embodiment of the presentinvention, since the part notation is defined, as the combined result(see FIG. 10B), the start position of the part 1, the end position ofthe part 1, and the end portion of the part 2 can be defined with SU.Thus, to pack the space due to the combined result, it is not necessaryto move the music data of the part 2. In addition, as the divided result(see FIG. 10C), it is not necessary to move data and pack the space atthe beginning of the file 2.

[0105]FIG. 11 is a schematic diagram showing the detailed data structureof the reproduction management file PBLIST. FIGS. 12A and 12B show aheader portion and the remaining portion of the reproduction managementfile PBLIST. The size of the reproduction management file is one cluster(one block=16 KB). The size of the header shown in FIG. 12A is 32 bytes.The rest of the reproduction management file PBLIST shown in FIG. 12Bcontains a name NM1 S area (256 bytes) (for the memory card), a name NM2S area (512 bytes), a contents key area, a MAC area, an S YMDhms area, areproduction sequence management table TRKTBL area (800 bytes), a memorycard additional information INF S area (14720 bytes), and a headerinformation redundant area. The start positions of these areas aredefined in the reproduction management file.

[0106] The first 32 bytes of (0x0000) to (0x0010) shown in FIG. 12A areused for the header. In the file, 16-byte areas are referred to asslots. Referring to FIG. 12A, the header are placed in the first andsecond slots. The header contains the following areas. An area denotedby “Reserved” is an undefined area. Normally, in a reserved area, a null(0x00) is written. However, even if any data is written to a reservedarea, the data written in the reserved is ignored. In a future version,some reserved areas may be used. In addition, data is prohibited frombeing written to a reserved area. When an option area is not used, it istreated as a reserved area.

[0107] BLKID TL0 (4 bytes)

[0108] Meaning: BLOCKID FILE ID

[0109] Function: Identifies the top of the

[0110] reproduction management file.

[0111] Value: Fixed value=“TL=0” (for example, 0x544C2D30)

[0112] MCode (2 bytes)

[0113] Meaning: MAKER CODE

[0114] Function: Identifies the maker and model of the recorder/player

[0115] Value: High-order 10 bits (Maker code); low-order 6 bits (modelcode).

[0116] REVISION (4 bytes)

[0117] Meaning: Number of rewrite times of PBLIST

[0118] Function: Increments whenever the reproduction management file isrewritten.

[0119] Value: Starts at 0 and increments by 1.

[0120] SN1C+L (2 bytes)

[0121] Meaning: Attribute of name (one byte code) of memory card writtenin NM1 S area.

[0122] Function: Represents the character code and the language code asone byte code.

[0123] Value: Character code (C): High-order one byte

[0124]00: Non-character code, binary number

[0125]01: ASCII (American Standard Code for Information Interchange)

[0126]02: ASCII+KANA

[0127]03: Modified 8859-1

[0128]81: MS-JIS

[0129]82: KS C 5601-1989

[0130]83: GB (Great Britain) 2312-80

[0131]90: S-JIS (Japanese Industrial Standards) (for Voice)

[0132] Language code (L): Low-order one byte

[0133] Identifies the language based on EBU Tech 3258 standard.

[0134]00: Not set

[0135]08: German

[0136]09: English

[0137]0A: Spanish

[0138]0F: French

[0139]15: Italian

[0140]1D: Dutch

[0141]65: Korean

[0142]69: Japanese

[0143]75: Chinese

[0144] When data is not recorded, this area is all 0.

[0145] SN2C+L (2 bytes)

[0146] Meaning: Attribute of name of memory card in NM2 S area.

[0147] Function: Represents the character code and the language coded asone byte code.

[0148] Value: Same as SN1C+L

[0149] SINFSIZE (2 bytes)

[0150] Meaning: Total size of additional information of memory card inINF S area.

[0151] Function: Represents the data size as an increment of 16 bytes.When data is not recorded, this area is all 0.

[0152] Value: Size: 0x0001 to 0x39C (924)

[0153] T TRK (2 bytes)

[0154] Meaning: TOTAL TRACK NUMBER

[0155] Function: Represents the number of total tracks.

[0156] Value: 1 to 0x0190 (Max. 400 tracks)

[0157] When data is recorded, this area is all 0.

[0158] VerNo (2 bytes)

[0159] Meaning: Format version number

[0160] Function: Represents the major version number (high order onebyte) and the minor version number (low order one byte).

[0161] Value: Example 0x0100 (Ver 1.0)

[0162] 0x0203 (Ver 2.3)

[0163] Next, areas (see FIG. 13B) that preceded by the header will bedescribed.

[0164] NM1 S

[0165] Meaning: Name of memory card (as one byte code)

[0166] Function: Represents the name of the memory card as one byte code(max. 256). At the end of this area, an end code (0x00) is written. Thesize is calculated from the end code. When data is not recorded, null(0x00) is recorded from the beginning (0x0020) of this area for at leastone byte.

[0167] Value: Various character code

[0168] NM2 S

[0169] Meaning: Name of memory card (as two byte code)

[0170] Function: Represents the name of the memory card as two byte code(max. 512). At the end of this area, an end code (0x00) is written. Thesize is calculated from the end code. When data is not recorded, null(0x00) is recorded from the beginning (0x0120) of this area for at leasttwo bytes.

[0171] Value: Various character code

[0172] CONTENTS KEY

[0173] Meaning: Value for music program. Protected with MG(M) andstored. Same as CONTENTS KEY.

[0174] Function: Used as a key necessary for calculating MAC ofS-YMDhms.

[0175] Value: 0 to 0xFFFFFFFFFFFFFFFF

[0176] MAC

[0177] Meaning: Forged copyright information check value

[0178] Function: Represents the value generated with S YMDhms andCONTENTS KEY.

[0179] Value: 0 to 0xFFFFFFFFFFFFFFFF

[0180] TRK nnn

[0181] Meaning: SQN (sequence) number of ATRAC3 data file reproduced.

[0182] Function: Represents FNo of TRKINF.

[0183] Value: 1 to 400 (0x190)

[0184] When there is no track, this area is all 0.

[0185] INF S

[0186] Meaning: Additional information of memory card (for example,information with respect to photos, songs, guides, etc.)

[0187] Function: Represents variable length additional information witha header. A plurality of types of additional information may be used.Each of the types of additional information has an ID and a data size.Each additional information area including a header is composed of atleast 16 bytes and a multiple of 4 bytes. For details, see the followingsection.

[0188] Value: Refer to the section of “Data Structure of AdditionalInformation”.

[0189] S YMDhms (4 bytes) (Option)

[0190] Meaning: Year, month, day, hour, minute, and second recorded bythe recorder/player with a reliable clock.

[0191] Function: Identifies the last recorded date and time. In thiscase of EMD, this area is mandatory.

[0192] Value: bits 25 to 31: Year 0 to 99 (1980 to 2079)

[0193] bits 21 to 24: Month 0 to 12

[0194] bits 16 to 24: Day 0 to 31

[0195] bits 11 to 15: Hour 0 to 23

[0196] bits 05 to 10: Minute 0 to 59

[0197] bits 00 to 04: Second 0 to 29 (two second interval)

[0198] As the last slot of the reproduction management file, the sameBLKID TL0, MCode, and REVISION as those in the header are written.

[0199] While data is being recorded to a memory card, it may bemistakenly or accidentally detached or the power of the recorder/playermay be turned off. When such an improper operation is performed, adefect should be detected. As described above, the REVISION area isplaced at the beginning and end of each block. Whenever data isrewritten, the value of the REVISION area is incremented. If a defecttermination takes place in the middle of a block, the value of theREVISION area at the beginning of the block does not match the value ofthe REVISION area at the end of the block. Thus, such a defecttermination can be detected. Since there are two REVISION areas, theabnormal termination can be detected with a high probability. When anabnormal termination is detected, an alarm such as an error message isgenerated.

[0200] In addition, since the fixed value BLKID TL0 is written at thebeginning of one block (16 KB), when the FAT is destroyed, the fixedvalue is used as a reference for recovering data. In other words, withreference to the fixed value, the type of the file can be determined.Since the fixed value BLKID TL0 is redundantly written at the header andthe end portion of each block, the reliability can be secured.Alternatively, the same reproduction management file can be redundantlyrecorded.

[0201] The data amount of an ATRAC3 data file is much larger than thatof the track information management file. In addition, as will bedescribed later, a block number BLOCK SERIAL is added to ATRAC3 datafile. However, since a plurality of ATRAC3 data files are recorded tothe memory card, to prevent them from become redundant, both CONNUM0 andBLOCK SERIAL are used. Otherwise, when the FAT is destroyed, it will bedifficult to recover the file. In other words, one ATRAC3 data file maybe composed of a plurality of blocks that are dispersed. To identifyblocks of the same ATRAC3 data file, CONNUM0 is used. In addition, toidentify the order of blocks in the ATRAC3 data file, BLOCK SERIAL isused.

[0202] Likewise, the maker code (Mcode) is redundantly recorded at thebeginning and the end of each block so as to identify the maker and themodel in such a case that a file has been improperly recorded in thestate that the FAT has not been destroyed.

[0203]FIG. 12C is a schematic diagram showing the structure of theadditional information data. The additional information is composed ofthe following header and variable length data. The header has thefollowing areas.

[0204] INF

[0205] Meaning: FIELD ID

[0206] Function: Represents the beginning of the additional information(fixed value).

[0207] Value: 0x69

[0208] ID

[0209] Meaning: Additional information key code

[0210] Function: Represents the category of the additional information.

[0211] Value: 0 to 0xFF

[0212] SIZE

[0213] Meaning: Size of individual additional information

[0214] Function: Although the data size is not limited, it should be atleast 16 bytes and a multiple of 4 bytes. The rest of the data should befilled with null (0x00).

[0215] Value: 16 to 14784 (0x39C0)

[0216] MCode

[0217] Meaning: MAKER CODE

[0218] Function: Identifies the maker and model of the recorder/player.

[0219] Value: High-order 10 bits (maker code), low-order 10 bits(machine code).

[0220] C+L

[0221] Meaning: Attribute of characters in data area starting from byte12.

[0222] Function: Represents the character code and the language code asone byte code.

[0223] Value: Same as SNC+L

[0224] DATA

[0225] Meaning: Individual additional information

[0226] Function: Represents each type of additional information withvariable length data. Real data always starts from byte 12. The length(size) of the real data should be at least 4 bytes and a multiple of 4bytes. The rest of the data area should be filled with null (0x00).

[0227] Value: Individually defined corresponding to the contents of eachtype of additional information.

[0228]FIG. 13 is a table that correlates key code values (0 to 63 ofadditional information and types thereof. Key code values (0 to 31) areassigned to music character information. Key code values (32 to 63) areassigned to URLs (Uniform Resource Locator) (web information). The musiccharacter information and URL information contain character informationof the album title, the artist name, the CM, and so forth as additionalinformation.

[0229]FIG. 14 is a table that correlates key code values (64 to 127) ofadditional information and types thereof. Key code values (64 to 95) areassigned to paths/others. Key code values (96 to 127) are assigned tocontrol/numeric data. For example, ID=98 represents TOC (Table ofContent) ID as additional information. TOC ID represents the first musicprogram number, the last music program number, the current programnumber, the total performance duration, and the current music programduration corresponding to the TOC information of a CD (Compact Disc).

[0230]FIG. 15 is a table that correlates key-code values (128 to 159) ofadditional information and types thereof. Key code values (128 to 159)are assigned to synchronous reproduction information. In FIG. 15, EMDstands for electronic music distribution.

[0231] Next, with reference to FIG. 16, real examples of additionalinformation will be described. As with FIG. 12C, FIG. 16A shows the datastructure of the additional information. In FIG. 16B, key code ID=3(artist name as additional information). SIZE=0x1C (28 bytes)representing that the data length of additional information includingthe header is 28 bytes; C+L representing that character code C=0x01(ASCII) and language code L=0x09 (English). Variable length data afterbyte 12 represents one byte data “SIMON & GRAFUNKEL” as artist name.Since the data length of the additional information should be a multipleof 4 bytes, the rest is filled with (0x00).

[0232] In FIG. 16C, key code ID=97 representing that ISRC (InternationalStandard Recording Code: Copyright code) as additional information.SIZE=0x14 (20 bytes) representing that the data length of the additionalinformation is 20 bytes. C=0x00 and L=0x00 representing that charactersand language have not been set. Thus, the data is binary code. Thevariable length data is eight-byte ISRC code representing copyrightinformation (nation, copyright owner, recorded year, and serial number).

[0233] In FIG. 16D, key code ID=97 representing recorded date and timeas additional information. SIZE =0x10 (16 bytes) representing that thedata length of the additional information is 16 bytes. C=0x00 and L=0x00representing that characters and language have not been set. Thevariable length data is four-byte code (32 bit) representing therecorded date and time (year, month, day, hour, minute, second).

[0234] In FIG. 16E, key code ID=107 representing a reproduction log asadditional information. SIZE=0x10 (16 bytes) representing that the datalength of the additional information is 16 bytes. C=0x00 and L =0x00representing that characters and language have not been set. Thevariable length data is a four-byte code representing a reproduction log(year, month, day, hour, minute, second). When the recorder/player has areproduction log function, it records data of 16 bytes whenever itreproduces music data.

[0235]FIG. 17 is a schematic diagram showing a data arrangement ofATRAC3 data file A3Dnnnn in the case that 1 SU is N bytes (for example,N=384 bytes). FIG. 17 shows an attribute header (1 block) of a data fileand a music data file (1 block). FIG. 17 shows the first byte (0x0000 to0x7FF0) of each slot of the two blocks (16×2=32 kbytes). As shown inFIG. 18, the first 32 bytes of the attribute header are used as aheader; 256 bytes are used as a music program area NM1 (256 bytes); and512 bytes are used as a music program title area NM2 (512 bytes). Theheader of the attribute header contains the following areas.

[0236] BLKID HD0 (4 bytes)

[0237] Meaning: BLOCKID FIELD ID

[0238] Function: Identifies the top of an ATRA3 data file.

[0239] Value: Fixed value=“HD=0” (For example, 0x48442D30)

[0240] MCode (2 bytes)

[0241] Meaning: MAKER CODE

[0242] Function: Identifies the maker and model of the recorder/player

[0243] Value: High-order 10 bits (maker code); low-order 6 bits (machinecode)

[0244] BLOCK SERIAL (4 bytes)

[0245] Meaning: Track serial number

[0246] Function: Starets from 0 and increments by 1. Even if a musicprogram is edited, this value does not vary.

[0247] Value: 0 to 0xFFFFFFFF.

[0248] N1C+L (2 bytes)

[0249] Meaning: Represents the attribute of data (NM1) of a track (musicprogram title).

[0250] Function: Represent the character code and language code of NM1as one byte code.

[0251] Value: Same as SN1C+L

[0252] N2C+L (2 bytes)

[0253] Meaning: Represents the attribute of data (NM2) of a track (musicprogram title).

[0254] Function: Represent the character code and language code of NM2as one byte code.

[0255] Value: Same as SN1C+L

[0256] INFSIZE (2 bytes)

[0257] Meaning: Total size of additional information of current track.

[0258] Function: Represents the data size as a multiple of 16 bytes.When data is not recorded, this area should be all 0.

[0259] Value: 0x0000 to 0x3C6 (966)

[0260] T PRT (2 bytes)

[0261] Meaning: Number of total parts

[0262] Function: Represents the number of parts that composes thecurrent track. Normally, the value of T PRT is 1.

[0263] Value: 1 to 285 (645 dec).

[0264] T SU (4 bytes)

[0265] Meaning: Number of total SU.

[0266] Function: Represents the total number of SU in one track that isequivalent to the program performance duration.

[0267] Value: 0x01 to 0x001FFFFF

[0268] INX (2 bytes) (Option)

[0269] Meaning: Relative position of INDEX

[0270] Function: Used as a pointer that represents the top of arepresentative portion of a music program. The value of INX isdesignated with a value of which the number of SU is divided by 4 as thecurrent position of the program. This value of INX is equivalent to 4times larger than the number of SU (around 93 msec).

[0271] Value: 0 to 0xFFFF (max, around 6084 sec)

[0272] XT (2 bytes) (Option)

[0273] Meaning: Reproduction duration of INDEX

[0274] Function: Designates the reproduction duration designated byINX-nnn with a value of which the number of SU is divided by 4. Thevalue of INDEX is equivalent to four times larger than the normal SU(around 93 msec).

[0275] Value: 0x0000 (no setting); 0x01 to 0xFFFE (up to 6084 sec);0xFFFF (up to end of music program)

[0276] Next, the music program title areas NM1 and NM2 will bedescribed.

[0277] NM1

[0278] Means: Character string of music program title

[0279] Function: Represents a music program title as one byte code (upto 256 characters) (variable length). The title area should be completedwith an end code (0x00). The size should be calculated from the endcode. When data is not recorded, null (0x00) should be recorded from thebeginning (0x0020) of the area for at least one byte.

[0280] Value: Various character codes

[0281] NM2

[0282] Means: Character string of music program title

[0283] Function: Represents a music program title as two byte code (upto 512 characters) (variable length). The title area should be completedwith an end code (0x00). The size should be calculated from the endcode. When data is not recorded, null (0x100) should be recorded fromthe beginning (0x0120) of the area for at least two bytes.

[0284] Value: Various character codes

[0285] Data of 80 bytes starting from the fixed position (0x320) of theattribute header is referred to as track information area TRKINF. Thisarea is mainly used to totally manage the security information and copycontrol information. FIG. 19 shows a part of TRKINF. The area TRKINFcontains the following areas.

[0286] CONTENTS KEY (8 bytes)

[0287] Meaning: Value for each music program. The value of CONTENTS KEYis protected in the security block of the memory card and then stored.

[0288] Function: Used as a key for reproducing a music program. It isused to calculate the value of MAC.

[0289] Value: 0 to 0xFFFFFFFFFFFFFFFF

[0290] MAC (8 bytes)

[0291] Meaning: Forged copyright information check value

[0292] Function: Represents the value generated with a plurality ofvalues of TRKINF including contents cumulation numbers and a secretsequence number.

[0293] The secret sequence number is a sequence number recorded in thesecret area of the memory card. A non-copyright protection type recordercannot read data from the secret area of the memory card. On the otherhand, a copyright protection type recorder and a computer that operateswith a program that can read data from a memory card can access thesecret area.

[0294] A (1 byte)

[0295] Meaning: Attribute of part.

[0296] Function: Represents the information of such as compression modeof a part.

[0297] Value: The details will be described in the following (see FIG.20).

[0298] In the following description, monaural mode (N=0 or 1) is definedas a special joint mode of which bit 7=1, sub signal=0, mainsignal=(L+R). A non-copyright protection type player may ignoreinformation of bits 2 and 1.

[0299] Bit 0 of the area A represents information of emphasis on/offstate. Bit 1 of the area A represents information of reproduction skipor normal reproduction. Bit 2 represents information of data type suchas audio data, FAX data, or the like. Bit 3 is undefined. By acombination of bits 4, 5, and 6, mode information of ATRAC3 is definedas shown in FIG. 20. In other words, N is a mode value of 3 bits. Forfive types of modes that are monaural (N=0 or 1), LP (N=2), SP (N=4), EX(N=5), and HQ (N=7), record duration (64 MB memory card only), datatransmission rate, and the number of SU per block are listed. The numberof bytes of 1 SU depends on each mode. The number of bytes of 1 SU inthe monaural mode is 136 bytes. The number of bytes of 1 SU in the LPmode is 192 bytes. The number of bytes of 1 SU in the SP mode is 304bytes. The number of bytes of 1 SU in the EX mode is 384 bytes. Thenumber of bytes of 1 SU in the HQ mode is 512 bytes. Bit 7 representsATRAC3 modes (0: Dual, 1: JOint).

[0300] For example, an example of which a 64 MB memory card is used inthe SP mode will be described. A 64-MB memory card has 3968 blocks. Inthe SP mode, since 1 SU is 304 bytes, one block has 53 SU. 1 SU isequivalent to (1024/44100) seconds. Thus, one block is(1024/44100)×53×(3968 16)=4863 seconds=81 minutes.

[0301] The transmission rate is (44100/1024)×304×8=104737 bps.

[0302] LT (one byte)

[0303] Meaning: Reproduction restriction flag (bits 7 and 6) andsecurity partition (bits 5 to 0).

[0304] Function: Represents a restriction of the current track.

[0305] Value: bit 7: 0=no restriction, 1=restriction

[0306] bit 6: 0=not expired, 1=expired

[0307] bits 5 to 0: security partition (reproduction prohibited otherthan 0)

[0308] FNo (2 bytes)

[0309] Meaning: File number

[0310] Function: Represents the initially recorded track number thatdesignates the position of the MAC calculation value recorded in thesecret area of the memory card.

[0311] Value: 1 to 0x190 (400)

[0312] MG(D) SERIAL nnn (16 bytes)

[0313] Meaning: Represents the serial number of the security block(security IC 20) of the recorder/player.

[0314] Function: Unique value for each recorder/player

[0315] Value: 0 to 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

[0316] CONNUM (4 bytes)

[0317] Meaning: Contents cumulation number

[0318] Function: Represents a unique value cumulated for each musicprogram. The value is managed by the security block of therecorder/player. The upper limit of the value is 2³² that is4,200,000,000. Used to identify a recorded program.

[0319] Value: 0 to 0xFFFFFFFF

[0320] YMDhms S (4 bytes) (Option)

[0321] Meaning: Reproduction start date and time of track withreproduction restriction

[0322] Function: Represents the, date and time at which datareproduction is permitted with EMD.

[0323] Value: Same as the notation of date and time of other areas

[0324] YMDhms E (4 bytes) (Option)

[0325] Meaning: Reproduction end date and time of track withreproduction restriction

[0326] Function: Represents the date and time at which data reproductionis expired with EMD.

[0327] Value: Same as the notation of date and time of other areas

[0328] MT (1 byte) (Option)

[0329] Meaning: Maximum value of number of permitted reproduction times

[0330] Function: Represents the maximum number of reproduction timesdesignated by EMD.

[0331] Value: 1 to 0xFF. When not used, the value of the area MT is 00.

[0332] CT (1 byte) (Option)

[0333] Meaning: Number of reproduction times

[0334] Function: Represents the number of reproduction times in thenumber of permitted reproduction times. Whenever data is reproduced, thevalue of the area CT is decremented.

[0335] Value: 0x00 to 0xFF. When not used, the value of the area CT is0x00. When bit 7 of the area LT is 1 and the value of the area CT is 00,data is prohibited from being reproduced.

[0336] CC (1 byte)

[0337] Meaning: COPY CONTROL

[0338] Function: Controls the copy operation.

[0339] Value: As shown in FIG. 21, bits 6 and 7 represent copy controlinformation. bits 4 and 5 represent copy control information of a highspeed digital copy operation. bits 2 and 3 represent a security blockauthentication level. bits 0 and 1 are undefined.

[0340] Example of CC:

[0341] (bits 7 and 6)

[0342] 11: Unlimited copy operation permitted

[0343] 01: copy prohibited

[0344] 00: one time copy operation permitted (bits 3 and 2)

[0345] 00: analog/digital input, recording MG authentication level is 0.

[0346] When digital record operation using data from a CD is performed,(bits 7 and 6): 00 and (bits 3 and 2): 00.

[0347] CN (1 byte) (Option)

[0348] Meaning: Number of permitted copy times in high speed serial copymanagement system

[0349] Function: Extends the copy permission with the number of copytimes, not limited to one time copy permission and copy free permission.Valid only in first copy generation. The value is decremented wheneverthe copy operation is performed.

[0350] Value: 00: Copy prohibited

[0351] 01 to 0xFE: Number of times

[0352] 0xFF: Unlimited copy times

[0353] The track information area TRKINF is followed by a 24-byte partmanagement information area (PRTINF) starting from 0x0370. When onetrack is composed of a plurality of parts, the values of areas PRTINF ofthe individual parts are successively arranged on the time axis. FIG. 22shows a part of the area PRTINF. Next, areas in the area PRTINF will bedescribed in the order of the arrangement.

[0354] PRTSIZE (4 bytes)

[0355] Meaning: Part size

[0356] Function: Represents the size of a part.

[0357] Cluster: 2 bytes (highest position), start

[0358] SU: 1 byte (upper), end SU: 1 byte (lowest position).

[0359] Value: cluster: 1 to 0x1F40 (8000)

[0360] start SU: 0 to 0xA0 (160)

[0361] end SU: 0 to 0xA0 (16) (Note that SU

[0362] starts from 0.)

[0363] PRTKEY (8 bytes)

[0364] Meaning: Part encrypting value

[0365] Function: Initial value=0. Note that edit rules should beapplied.

[0366] Value: 0 to 0xFFFFFFFFFFFFFFFF

[0367] CONNUM0 (4 bytes)

[0368] Meaning: Initially generated contents cumulation number key

[0369] Function: Uniquely designates an ID of contents.

[0370] Value: Same value as the value of the contents cumulation numberinitial value key

[0371] As shown in FIG. 17, the attribute header of an ATRAC3 data filecontains additional information INF. The additional information is thesame as the additional information INF S (see FIGS. 11 and 12B) of thereproduction management file except that the start position is notfixed. The last byte position (a multiple of four bytes) at the end ofone or a plurality of parts is followed by data of the additionalinformation INF.

[0372] INF

[0373] Meaning: Additional information with respect to track

[0374] Function: Represents variable length additional information witha header. A plurality of different types of additional information maybe arranged. Each of additional information areas has an ID and a datasize. Each additional information area is composed of at least 16 bytesand a multiple of 4 bytes.

[0375] Value: Same as additional information INF S of reproductionmanagement file

[0376] The above-described attribute header is followed by data of eachblock of an ATRAC3 data file. As shown in FIG. 23, a header is added foreach block. Next, data of each block will be described.

[0377] BLKID A3D (4 bytes)

[0378] Meaning: BLOCKID FILE ID

[0379] Function: Identifies the top of ATRAC3 data.

[0380] Value: Fixed value=“A3D” (for example, 0x41334420)

[0381] MCode (2 bytes)

[0382] Meaning: MAKER CODE

[0383] Function: Identifies the maker and model of the recorder/player

[0384] Value: High-order 10 bits (maker code); low-order 6 bits (modelcode)

[0385] CONNUM0 (4 bytes)

[0386] Meaning: Cumulated number of initially created contents

[0387] Function: Designates a unique ID for contents. Even if thecontents are edited, the value is not changed.

[0388] Value: Same as the contents cumulation number initial key

[0389] BLOCK SERIAL (4 bytes)

[0390] Meaning: Serial number assigned to each track

[0391] Function: Starts from 0 and increments by 1. Even if the contentsare edited, the value is not changed.

[0392] Value: 0 to 0xFFFFFFFF

[0393] BLOCK-SEED (8 bytes)

[0394] Meaning: Key for encrypting one block

[0395] Function: The beginning of the block is a random number generatedby the security block of the recorder/player. The random number isfollowed by a value incremented by 1. When the value is lost, sincesound is not generated for around one second equivalent to one block,the same data is written to the header and the end of the block. Even ifthe contents are edited, the value is not changed.

[0396] Value: Initially 8-bit random number

[0397] INITIALIZATION VECTOR (8 bytes)

[0398] Meaning: Value necessary for encrypting/decrypting ATRAC3 data

[0399] Function: A block starts from 0. The next block starts from thelast encrypted 8-bit value at the last SU. When a block is divided, thelast eight bytes just before the start SU is used. Even if the contentsare edited, the value is not changed.

[0400] Value: 0 to 0xFFFFFFFFFFFFFFFF

[0401] SU nnn

[0402] Meaning: Data of sound unit

[0403] Function: Represents data compressed from 1024 samples. Thenumber of bytes of output data depends on the compression mode. Even ifthe contents are edited, the value is not changed. (For example, in theSP mode, N=384 bytes.)

[0404] Value: Data value of ATRAC3

[0405] In FIG. 17, since N=384, 42 SU are written to one block. Thefirst two slots (4 bytes) of one block are used as a header. In the lastslot (two bytes), the areas BLKID A3D, MCode, CONNUM0, and BLOCK SERIALare redundantly written. Thus, M bytes of the remaining area of oneblock is (16,384 384×42 16×3=208) bytes. As described above, theeight-byte area BLOCK SEED is redundantly recorded.

[0406] When the FAT area is destroyed, all blocks of the flash memoryare searched. It is determined whether the value of the block ID BLKIDof the top block is TL0, HD0, or A3D. Next, with reference to a flowchart shown in FIG. 24, the determining process will be described. Atstep SP1, it is determined whether or not the value of the block IDBLKID of the top block is TL0.

[0407] When the determined result at step SP1 represents that the valueof the block ID BLKID of the top block is not TL0, the flow advances tostep SP2. At step SP2, the block number is incremented. Thereafter, theflow advances to step SP3. at step SP3, it is determined whether or notthe last block has been searched. When the determined result at step SP3represents that the last block has not been searched, the flow returnsto step SP1.

[0408] When the determined result at step SP1 represents that the valueof the block ID BLKID of the top block is TL0, the flow advances to stepSP4. At step SP4, it is determined that the searched block is thereproduction management file PBLIST. Thereafter, the flow advances tostep SP5. At step SP5, with reference to the number of total tracks TTRK contained in the reproduction management file PBLIST, the number oftotal tracks N is stored to the register. For example, when the memorystores 10 ATRAC3 data files (10 music programs), the value of T-TRK is10.

[0409] Next, at step SP6, with reference to the value of the number oftotal tracks T TRK, TRK 001 to TRK 400 of blocks are successivelyreferenced. In this example, since 10 music programs have been recorded,only TRK 001 to TRK 010 of blocks are referenced.

[0410] Since a file number FNO is recorded in TRK XXX (where X=1 to400), a table that represents the relation of the track numbers TRK XXXand the file numbers FNO is stored to the memory at step SP7.

[0411] At step SP8, the value of N stored in the register isdecremented. At step SP9, a loop of steps SP6, SP7, and SP8 is repeateduntil the value of N becomes 0. When the determined result at step SP9represents that the value N is 0, the flow advances to step SP10. Atstep SP10, the pointer is reset to the top block. The searching processis repeated from the top block.

[0412] Thereafter, the flow advances to step SP11. At step SP11, it isdetermined whether or not the value of the block ID BLKID of the topblock is BLKID HD0. When the determined result at step SPl1 representsthat the block ID BLKID of the top block is not BLKID HD0, the flowadvances to step SP12. At step SP12, the block number is incremented. Atstep SP13, it is determined whether or not the last block has beensearched.

[0413] When the determined result at step SP13 represents that the lastblock has not been searched, the flow returns to step SP11.

[0414] The searching process is repeated until the determined result atstep SP11 represents that the value of the block ID BLKID of the topblock is BLKID HD0. When the determined result at step SP11 representsthat the value of the block ID BLKID of the top block is BLKID HD0, theflow advances to step SP14. At step SP14, it is determined that theblock is the attribute header (see FIG. 8) at the beginning of theATRAC3 data file, the attribute header being from 0x0000 to 0x03FFFshown in FIG. 18.

[0415] Next, at step SP15, with reference to the file number FNO, thesequence number BLOCK SERIAL of the ATRAC data file, and the contentcumulation number key CONNUM0 contained in the attribute header, theyare stored to the memory. When 10 ATRAC3 data files (10 music programs)have been recorded, since there are 10 blocks whose block ID BLKID isBLKID TL0, the searching process is continued until they are searched.

[0416] When the determined result at step SP13 represents that the lastblock has been searched, the flow advances to step SP16. At step SP16,the pointer is reset to the top block. The searching process is repeatedfrom the top block.

[0417] At step SP17, it is determined whether or not the value of theblock ID BLKID of the top block is BLKID A3D. When the determined resultat step SP17 represents that the value of the block ID BLKID of the topblock is not BLKID A3D, the flow advances to step SP18. At step SP18,the block number is incremented. Thereafter, the flow advances to stepSP19. At step SP19, it is determined whether or not the last block hasbeen searched. When the determined result at step SP19 represents thatthe last block has not been searched, the flow returns to step SP17.

[0418] When the determined result at step SP17 represents that the valueof the block ID BLKID of the top block is BLKID A3D, the flow advancesto step SP20. At step SP20, it is determined that the block is a blockin which the ATRAC3 data file has been recorded.

[0419] At step SP21, with reference to the serial number BLOCK SERIALand the contents cumulation number key CONNUM0 recorded in the ATRAC3data block, they are stored in the memory. In the same ATRAC3 data file,the same content cumulation number key CONNUM0 is assigned. In otherwords, when one ATRAC3 data file is composed of 10 blocks, the samenumber is assigned to CONNUM0 of each block.

[0420] In addition, when one ATRAC3 data file is composed of 10 blocks,serial numbers 1 to 0 are successively assigned to BLOCK SERIALs of the10 blocks. With CONNUM0, it is determined whether or not the currentblock composes the same content. With BLOCKSERIAL, the reproductionorder of the current block in the same content (namely, the connectionsequence) can be obtained.

[0421] According to the embodiment of the present invention, when 10ATRAC3 data files (namely, 10 music programs) have been recorded andeach of the ATRAC3 data files is composed of 10 blocks, there are 100data blocks. With reference to CONNUM0 and BLOCK SERIAL, thereproduction order of music programs of 100 data blocks and theconnection order thereof can be obtained.

[0422] When the determined result at step SP19 represents that the lastblock has been searched, all the blocks have been searched for thereproduction management file, the ATRAC3 data file, and the attributefile. Thus, at step SP22, based on CONNUM0, BLOCK SERIAL, FNO, and TRKXXX stored in the memory corresponding to block numbers, a link state ofa file are obtained. After the link state is obtained, the FAT may becreated in a free non-destroyed area of the memory.

[0423] Next, a management file according to a second embodiment of thepresent invention will be described. FIG. 25 shows the file structure ofa memory card 40 according to the second embodiment of the presentinvention. Referring to FIG. 25, a music directory contains a trackinformation management file TRKLIST.MSF (hereinafter, referred to asTRKLIST), a backup track information management file TRKLISTB.MSF(hereinafter, referred to as TRKLISTB), an additional information fileINFLIST.MSF (that contains an artist name, an ISRC code, a time stamp, astill picture data, and so forth (this file is referred to as INFIST)),an ATRAC3 data file A3Dnnnn.MSA (hereinafter, referred to as A3Dnnnn).The file TRKLIST contains two areas NAME1 and NAME2. The area NAME1 isan area that contains the memory card name and the program name (for onebyte code corresponding to ASCII/8859 1 character code). The area NAME2is an area that contains the memory card name and the program name (fortwo byte code corresponding to MS JIS/Hankul/Chinese code).

[0424]FIG. 26 shows the relation between the track informationmanagement file TRKLIST, the areas NAME1 and NAME2, and the ATRAC3 datafile A3Dnnnn. The file TRKLIST is a fixed-length file of 64 kbytes (=16k×4). An area of 32 kbytes of the file is used for managing tracks. Theremaining area of 32 kbytes is used to contain the areas NAME1 andNAME2. Although the areas NAME1 and NAME2 for program names may beprovided as a different file as the track information management file,in a system having a small storage capacity, it is convenient to totallymanage the track information management file and program name files.

[0425] The track information area TRKINF nnnn and part information areaPRTINF nnnn of the track information management file TRKLIST are used tomanage the data file A3Dnnnn and the additional information INFLIST.Only the ATRAC3 data file A3Dnnnn is encrypted. In FIG. 26, the datalength in the horizontal direction is 16 bytes (0 to F). A hexadecimalnumber in the vertical direction represents the value at the beginningof the current line.

[0426] According to the second embodiment, three files that are thetrack management file TRKLIST (including a program title file), theadditional information management file INFLIST, and the data fileA3Dnnnn are used. According to the first embodiment (see FIGS. 7, 8, and9), two files that are the reproduction management file PBLIST formanaging all the memory card and the data file ATRAC3 for storingprograms are used.

[0427] Next, the data structure according to the second embodiment willbe described. For simplicity, in the data structure according to thesecond embodiment, the description of similar portions to those of thefirst embodiment is omitted.

[0428]FIG. 27 shows the detailed structure of the track informationmanagement file TRKLIST. In the track information management fileTRKLIST, one cluster (block) is composed of 16 kbytes. The size and dataof the file TRKLISTB are the same as those of the backup file TRKLISTB.The first 32 bytes of the track information management file are used asa header. As with the header of the reproduction management file PBLIST,the header of the file TRKLIST contains a BLKID TL0/TL1 (backup file ID)area (4 bytes), an area T TRK (2 bytes) for the number of total tracks,a maker code area MCode (2 bytes), an area REVISION (4 bytes) for thenumber of TRKLIST rewrite times, and an area S YMDhms (4 bytes) (option)for update date and time data. The meanings and functions of these dataareas are the same as those of the first embodiment. In addition, thefile TRKLIST contains the following areas.

[0429] YMDhms (4 bytes)

[0430] Represents the last update date (year, month, day) of the fileTRKLIST.

[0431] N1 (1 byte) (Option)

[0432] Represents the sequential number of the memory card (numeratorside). When one memory card is used, the value is 0x01.

[0433] N2 (1 byte) (Option)

[0434] Represents the sequential number of the memory card (denominatorside). When one memory card is used, the value is 0x01.

[0435] MSID (2 bytes) (Option)

[0436] Represents the ID of a memory card. When a plurality of memorycards is used, the value of each memory card is the same (T.B.D.).

[0437] (T.B.D. (to be defined) represents that this value may be definedin future).

[0438] S TRK (2 bytes).

[0439] Represents a special track (T.B.D.).

[0440] Normally, the value of is 0x0000.

[0441] PASS (2 bytes) (Option)

[0442] Represents a password (T.B.D.).

[0443] APP (2 bytes) (Option)

[0444] Represents the definition of a reproduction application (T.B.D.)(normally, the value of is 0x0000).

[0445] INF S (2 bytes) (Option)

[0446] Represents the additional information pointer of the entirememory card. When there is no additional information, the value is 0x00.

[0447] The last 16 bytes of the file TRKLIST are used for an area BLKIDTL0, an area MCode, and an area REVISION that are the same as those ofthe header. The backup file TRKLISTB contains the above-describedheader. In this case, the header contains an area BLKID TL1, an areaMCode, and an area REVISION.

[0448] The header is followed by a track information area TRKINF forinformation with respect to each track and a part information areaPRTINF for information with respect to each part of tracks (musicprograms). FIG. 27 shows the areas preceded by the area TRKLIST. Thelower portion of the area TRKLISTB shows the detailed structure of theseareas. In FIG. 27, a hatched area represents an unused area.

[0449] The track information area TRKINF nnn and the part informationarea PRTINF nnn contain areas of an ATRAC3 data file. In other words,the track information area TRKINF nnn and the part information areaPRTINF nnn each contain a reproduction restriction flag area LT (1byte), a contents key area CONTENTS KEY (8 bytes), a recorder/playersecurity block serial number area MG(D) SERIAL (16 bytes), an area XT (2bytes) (option) for representing a feature portion of a music program,an area INX (2 bytes) (option), an area YMDhms S (4 bytes) (option), anarea YMDhms E (4 bytes) (option), an area MT (1 byte) (option), an areaCT (1 byte) (option), an area CC (1 byte) (option), an area CN (1 byte)(option) (these areas YMDhms S, YMDhms E, MT, CT, CC, and CN are usedfor reproduction restriction information and copy control information),an area A (1 byte) for part attribute, a part size area PRTSIZE (4bytes), a part key area PRTKEY (8 bytes), and a contents cumulationnumber area CONNUM (4 bytes). The meanings, functions, and values ofthese areas are the same as those of the first embodiment. In addition,the track information area TRKINF nnn and the part information areaPRTINF nnn each contain the following areas.

[0450] T0 (1 byte)

[0451] Fixed value (T0=0x74)

[0452] INF nnn (Option) (2 bytes)

[0453] Represents the additional information pointer (0 to 409) of eachtrack. 00: music program without additional information.

[0454] FNM nnn (4 bytes)

[0455] Represents the file number (0x0000 to 0xFFFF) of an ATRK3 datafile. The number nnnn (in ASCII) of the ATRAC3 data file name (A3Dnnnn)is converted into 0xnnnnn.

[0456] APP CTL (4 bytes) (Option)

[0457] Represents an application parameter (T.B.D.) (Normally, the valueis 0x0000).

[0458] P nnn (2 bytes)

[0459] Represents the number of parts (1 to 2039) that compose a musicprogram. This area corresponds to the above-described area T PART.

[0460] PR (1 byte)

[0461] Fixed value (PR=0×50).

[0462] Next, the areas NAME1 (for one byte code) and NAME2 (for two bytecode) for managing names will be described. FIG. 28 shows the detailedstructure of the area NAME1 (for one byte code area). Each of the areasNAME1 and NAME2 (that will be described later) is segmented with eightbytes. Thus, their one slot is composed of eight bytes. At 0x8000 thatis the beginning of each of these areas, a header is placed. The headeris followed by a pointer and a name. The last slot of the area NAME1contains the same areas as the header.

[0463] BLKID NM1 (4 bytes)

[0464] Represents the contents of a block (fixed value)(NM1=0x4E4D2D31).

[0465] PNM1 nnn (4 bytes) (Option)

[0466] Represents the pointer to the area NM1 (for one byte code).

[0467] PNM1 S

[0468] Represents the pointer to a name representing a memory card. nnn(=1 to 408) represents the pointer to a music program title.

[0469] The pointer represents the start position (2 bytes) of the block,the character code type (2 bits), and the data size (14 bits).

[0470] NM1 nnn (Option)

[0471] Represents the memory card name and music program title for onebyte code (variable length). An end code (0x00) is written at the end ofthe area.

[0472]FIG. 29 shows the detailed data structure of the area NAME2 (fortwo byte code). At 0x8000 that is the beginning of the area, a header isplaced. The header is followed by a pointer and a name. The last slot ofthe area NAME2 contains the same areas as the header.

[0473] BLKID NM2 (4 bytes)

[0474] Represents the contents of a block (fixed value)(NM2=0x4E4D2D32).

[0475] PNM2 nnn (4 bytes) (Option)

[0476] Represents the pointer to the area NM2 (for two byte code).

[0477] PNM2 S represents the pointer to the name representing the memorycard. nnn (=1 to 408) represents the pointer to a music program title.

[0478] The pointer represents the start position (2 bytes) of the block,the character code type (2 bits), and the data size (14 bits).

[0479] NM2 nnn (Option)

[0480] Represents the memory card name and music program title for twobyte code (variable).

[0481] An end code (0x0000) is written at the end of the area.

[0482]FIG. 30 shows the data arrangement (for one block) of the ATRAC3data file A3Dnnnn in the case that 1 SU is composed of N bytes. In thisfile, one slot is composed of eight bytes. FIG. 30 shows the values ofthe top portion (0x0000 to 0x3FF8) of each slot. The first four slots ofthe file are used for a header. As with the data block preceded by theattribute header of the data file (see FIG. 17) of the first example, aheader is placed. The header contains an area BLKID A3D (4 bytes), amaker code area MCode (2 bytes), an area BLOCK SEED (8 bytes) necessaryfor encrypting process, an area CONNUM0 (4 bytes) for the initialcontents cumulation number, a serial number area BLOCK SERIAL (4 bytes)for each track, and an area INITIALIZATION VECTOR (8 bytes) necessaryfor encrypting/decrypting process. The second last slot of the blockredundantly contains an area BLOCK SEED. The last slot contains areasBLKID A3D and MCode. As with the first embodiment, the header isfollowed by the sound unit data SU nnnn.

[0483]FIG. 31 shows the detailed data structure of the additionalinformation management file INFLIST that contains additionalinformation. In the second embodiment, at the beginning (0x0000) of thefile INFLIST, the following header is placed. The header is followed bythe following pointer and areas.

[0484] BLKID INF (4 bytes)

[0485] Represents the contents of the block (fixed value)(INF=0x494E464F).

[0486] T DAT (2 blocks)

[0487] Represents the number of total data areas (0 to 409).

[0488] MCode (2 bytes)

[0489] Represents the maker code of the recorder/player

[0490] YMDhms (4 bytes)

[0491] Represents the record updated date and time.

[0492] INF nnnn (4 bytes)

[0493] Represents the pointer to the area DATA of the additionalinformation (variable length, as 2 bytes (slot) at a time). The startposition is represented with the high order 16 bits (0000 to FFFF).

[0494] DataSlot 0000 (0x0800)

[0495] Represents the offset value from the beginning (as a slot at atime).

[0496] The data size is represented with low order 16 bits (0001 to7FFF). A disable flag is set at the most significant bit. MSB=0(Enable), MSB=1 (Disable)

[0497] The data size represents the total data amount of the musicprogram.

[0498] (The data starts from the beginning of each slot. The non-dataarea of the slot is filled with 00.)

[0499] The first INF represents a pointer to additional information ofthe entire album (normally, INF 409).

[0500]FIG. 32 shows the structure of additional information. An 8-byteheader is placed at the beginning of one additional information dataarea. The structure of the additional information is the same as that ofthe first embodiment (see FIG. 12C). In other words, the additionalinformation contains an area IN (2 bytes) as an ID, an area key code ID(1 byte), an area SIZE (2 bytes) that represents the size of eachadditional information area, and a maker code area MCode (2 bytes). Inaddition, the additional information contains an area SID (1 byte) as asub ID.

[0501] According to the second embodiment of the present invention, inaddition to the file system defined as a format of the memory card, thetrack information management file TRKLIST for music data is used. Thus,even if the FAT is destroyed, the file can be recovered. FIG. 33 shows aflow of a file recovering process. To recover the file, a computer thatoperates with a file recovery program and that can access the memorycard and a storing device (hard disk, RAM, or the like) connected to thecomputer are used. The computer has a function equivalent to the DSP30.Next, a file recovering process using the track management file TRKLISTwill be described with reference to FIGS. 25 to 32.

[0502] All blocks of the flash memory whose FAT has been destroyed aresearched for TL 0 as the value (BLKID) at the top position of eachblock. In addition, all the blocks are searched for NM 1 as the value(BLKID) at the top position of each block. Thereafter, all the blocksare searched for NM 2 as the value (BLKID) at the top position of eachblock. All the contents of the four blocks (track information managementfile) are stored to for example a hard disk by the recovery computer.

[0503] The number of total tracks is obtained from data after the fourthbyte of the track information management file. The 20-th byte of thetrack information area TRKINF 001, the value of the area CONNUM 001 ofthe first music program, and the value of the next area P 001 areobtained. The number of parts is obtained with the value of the area P001. The values of the areas PRTSIZE of all parts of the track 1 of thearea PRTINF is obtained. The number of total blocks (clusters) n iscalculated and obtained.

[0504] After the track information management file is obtained, the flowadvances to step 102. At step 102, a voice data file (ATRAC3 data file)is searched. All blocks of other than the management file is searchedfrom the flash memory. Blocks whose top value (BLKID) is A3D arecollected.

[0505] A block of which the value of the area CONNUM0 at the 16-th byteof A3Dnnnn is the same as that of the area CONNUM 001 of the first musicprogram of the track information management file and of which the valueof the area BLOCK SERIAL that starts from 20-th byte is 0 is searched.After the first block is obtained, a block (cluster) with the same valueof the area CONNUM value as the first block and of which the value ofBLOCK SERIAL is incremented by 1 (1=0+1) is searched. After the secondblock is obtained, a block with the same value of the area CONNUM0 asthe second block and of which the value of the area BLOCK SERIAL isincremented by 1 (2=1+1) is searched.

[0506] By repeating the process, the ATRC3 data.file is searched until nblocks (clusters) of the track 1 are obtained. When all the blocks(clusters) are obtained, they are successively stored to the hard disk.

[0507] The same process for the track 1 is performed for the track 2. Inother words, a block of which the value of the area CONNUM0 is the sameas that of the area CONNUM 002 of the first music program of the trackinformation management file and of which the value of the area BLOCKSERIAL that starts at the 20-th byte is searched. Thereafter, in thesame manner as the track 1, the ATRAC3 data file is searched until thelast block (cluster) n′ is detected. After all blocks (clusters) areobtained, they are successively stored to the hard disk.

[0508] By repeating the above-described process for all tracks (thenumber of tracks: m), all the ATRAC3 data is stored to the hard diskcontrolled by the recovering computer.

[0509] At step 103, the memory card whose the FAT has been destroyed isre-initialized and then the FAT is reconstructed. A predetermineddirectory is formed in the memory card. Thereafter, the trackinformation management file and the ATRAC3 data file for m tracks arecopied from the hard disk to the memory card. Thus, the recovery processis finished.

[0510] In the management file and data file, important parameters (inparticular, codes in headers) may be recorded triply rather than doubly.When data is redundantly recorded, the same data may be recorded at anypositions as long as they are apart from each other for one page ormore.

[0511] According to the present invention, as was described above, whena data file for example an audio file recorded on the memory card 40 isreproduced therefrom, even if a file that has been reproductionrestricted and a file that has not been reproduction restricted havebeen stored on the memory card 40, they can be reproduced in a user'sdesired method. The system controller 32 and the operation portion (notshown) designate an audio file to be reproduced from the memory card 40and a reproducing method thereof.

[0512] The following reproducing method can be applied for both thefirst format shown in FIGS. 7 and 24 and the second format shown inFIGS. 25 and 32. Next, data causing a reproducing operation to berestricted in the first format will be described once again.

[0513] Bits 7 and 6 of LT (one byte) of the track information areaTRKINF shown in FIGS. 17 and 19 represent that the current track has arestriction (bit 7:0=not restricted; 1=restricted) and (bit 6:0 =notexpired, 1=expired). YMDhms S (4 bytes) represents reproduction startdate and time of a track that has been reproduction restricted. YMDhms E(4 bytes) represents reproduction end date and time of a track that hasbeen reproduction restricted. CT (1 byte) represents the number of timesof which the track can be reproduced in the number of permittedreproduction times. Whenever the track is reproduced, the value of CT isdecremented. The value of CT is in the range from 0x00 to 0xFF. When thetrack has not been used, the value of CT is 0x00. When bit 7 of LT is 1and the value of CT is 00, they represent that the track has beenprohibited from being reproduced.

[0514]FIG. 34 is a flow chart showing a process for designating areproducing mode for a program (also referred to as track or song) thathas been reproduction restricted. There are three reproducing modes thatare a first mode, a second mode, and a third mode. The reproductionrestriction includes a restriction with respect to duration ofreproduction and a restriction with respect to the number ofreproduction times. When the restriction with respect to duration ofreproduction is applied and the reproducing operation cannot beperformed, even if the number of permitted reproduction times is notzero, the reproducing operation is prohibited. Thus, in the followingdescription, unless otherwise specified, term “reproduction restriction”represents “restriction with respect to number of reproduction times”.

[0515] In the first mode, when a program that has been reproductionrestricted is tried to be reproduced, the reproducing operation ispaused, the user is informed that the program has been reproductionrestricted, and the user is asked whether or not he or she wants toreproduce the program. Corresponding to the user's reply, the program isreproduced or prohibited from being reproduced. However, when the numberof reproduction times of the program reaches the number of permittedreproduction times, the program is prohibited from being reproduced. Inthe second mode, when a program has been reproduction restricted, it isprohibited from being reproduced. In other words, in the second mode, aprogram that has been reproduction restricted is treated as if it werenot present on the medium. In the third mode, a program that has beenreproduction restricted is unconditionally reproduced. However in thethird mode, when the number of reproduction times reaches the number ofpermitted reproduction times, the program is prohibited from beingreproduced.

[0516] When a program (track) is prohibited from being reproduced, theprogram (track) is skipped. Alternatively, the program can besubstantially prohibited from being reproduced in such a manner that thereproducing operation is stopped, that the reproduced output is muted,or that the program is erased from the medium. In the followingdescription, term “reproduction prohibition” has the forgoing meaning.However, where appropriate, term “skip” may be used.

[0517] In FIG. 34, when the power of the recorder is turned on at stepS31, the flow advances to step S32. At step S32, a prompt that causesthe user to select one of the first, second, and third modes isdisplayed. At step S33, a process for designating one mode is performed.At step S34, the mode selected by the user is stored in the nonvolatilememory 32 a of the system controller 32. The power-on operation at stepS31 represents a first power-on operation. A mode change is performed byanother switch. However, whenever the power-on operation is performed,modes may be changed. At factory, as default, the first mode that causesthe user to select one of the three modes has been designated.

[0518] At step S35, it is determined whether or not the reproductionbutton has been pressed. When the determined result at step S35represents that the reproduction button has been pressed, the flowadvances to step S36. At step S36, it is determined whether or not theprogram to be reproduced has been reproduction restricted. When thedetermined result at step S36 represents that the program has not beenreproduction restricted, the flow advances to step S37. At step S37, theprogram is normally reproduced. After one program has been reproduced,the flow advances to step S36. At step S36, it is determined whether ornot the next program has been reproduction restricted.

[0519] When the determined result at step S36 represents that theprogram to be reproduced has been reproduction restricted, the flowadvances to step S38. At step S38, a reproducing operation is performedcorresponding to the mode stored in the nonvolatile memory 32 a.Thereafter, the flow advances to step S39. At step S39, in any mode, thereproducing operation of the program that can be reproduced iscompleted. Thereafter, the next program is processed. After the programthat has been reproduction restricted with respect to the number ofreproduction times has been reproduced, a reproduction log file isrecorded in additional information INF for the track, the additionalinformation INF having been described in the attribute header of thereproduced data file. Thereafter, the flow returns to step S36.

[0520] Although the additional information INF has been described withreference to FIG. 17, data structure of the additional information INFin which a reproduction log is recorded will be described with referenceto FIG. 35. A fixed value (0x69) is added at the beginning of theadditional information INF. The fixed value (0x69) is followed by a keycode that represents a category of additional information. In theexample shown in FIG. 35, the key code is value 103 that represents areproduction log. Next, the value 103 is followed by a code (for example0x10) that represents the size of the additional information. The code0x10 is followed by a maker code (MCode) that identifies the maker andmodel of the recording apparatus. The maker code is followed by null ofthree bytes (0x00). Null is a value that is meaningless.

[0521] The three-byte null is followed by data of one byte representingthe number of reproduction times. In reality, the data of one byte isthe value (eight bits) of CT. The value of CT before the program isreproduced or the value of CT after the program is reproduced isrecorded. The value of CT is followed by data of reproduction date andtime (YMDhms) of four bytes. The value of year (for example, 1980 to2079) is recorded with seven bits. The value of month is recorded withfour bits. The value of day (0 to 31) is recorded with five bits. Thevalue of hour (0 to 23) is recorded with five bits. The value of minute(0 to 59) is recorded with six bits. The value of second (at intervalsof two seconds) is recorded with five bits.

[0522] Whenever a program that has been reproduction restricted isreproduced, one reproduction log is recorded. At a result, withreproduction logs, the reproduction history of the program can beobtained. When management information such as additional information ortrack information is changed, the memory card 40 is attached to therecorder/player. The management information is read to the RAM of thesystem controller 32. The system controller 32 rewrites the managementinformation stored in the RAM and records the changed managementinformation to the memory card 40. When the memory card 40 is detachedfrom the recorder/player or when the power thereof is turned off,rewritten management information may be recorded to the memory card 40.

[0523]FIG. 36 is a flow chart showing an example of a process at stepS38 (a reproducing operation corresponding to a designated mode) shownin FIG. 34. At step S41, it is determined whether or not bit 6 of LT is0. When bit 6 of LT is 0, the program has not been reproductionrestricted with respect to the duration of reproduction (the program hasnot been expired). Thus, the flow advances to step S42. When bit 6 of LTis 1, since the program has been restricted with respect to the durationof reproduction (the program has been expired), the program isprohibited from being reproduced (at step S43).

[0524] When the determined result at step S41 represents that bit 6=0.the flow advances to step S42. At step S42, by comparing thereproduction start date and time YMDhms S with the reproduction end dateand time YMDhms E, it is determined whether or not the program has beenreproduction restricted with respect to the duration of reproduction(the program has been expired). When the determined result at step S42represents that the program has been reproduction restricted withrespect to the duration of reproduction (the program has been expired),the flow advances to step S43. At step S43, the program is prohibitedfrom being reproduced. When the determined result at step S42 representsthat the program has not been reproduction restricted with respect tothe duration of reproduction (the program has not been expired), theflow advances to step S44. At step S44, it is determined whether or notbit 7 of LT is 0.

[0525] Since (bit 7:0=not restricted; 1=restricted), when the determinedresult at step S44 represents that bit 7 is 0, the flow advances to stepS45. At step S45, the program is reproduced. When the determined resultat step S44 represents that bit 7 is not 0, the flow advances to stepS46. At step S46, it is determined whether or not the value of CT is 0.When the determined result at step S46 represents that the value of CTis 0, since the number of permitted reproduction times is 0, the programis prohibited from being reproduced (at step S47).

[0526] When the determined result at step S46 represents that the valueof CT is not 0, the flow advances to step S48. At step S48, it isdetermined whether or not the designated mode is the second mode. Todetermine the designated mode, the system controller 32 reads a codecorresponding to the mode from the nonvolatile memory 32 a. When thedetermined result at step S48 represents that the designated mode is thesecond mode, the flow advances to step S49. At step S49, the program isskipped.

[0527] When the determined result at step S48 represents that thedesignated mode is not the second mode, the flow advances to step S50.At step S50, it is determined whether or not the designated mode is thefirst mode. When the determined result at step S50 represents that thedesignated mode is not the first mode, it is determined that thedesignated mode is the third mode. In the third mode, since a programthat has been reproduction restricted is unconditionally reproduced, theflow advances to step S51. At step S51, the number of reproduction timesCT is decremented. Thereafter, the flow advances to step S45. At stepS45, the reproducing operation is performed.

[0528] When the determined result at step S50 represents that thedesignated mode is the first mode, the flow advances to step S52. Atstep S52, the user is informed that the program has been reproductionrestricted with for example a message displayed on the monitor.Thereafter, the user is asked whether or not he or she wants toreproduce the program. For example, a message “Track Tr2 Play ?” isdisplayed. In this case, it is not always necessary to inform the userthat the program has been reproduction restricted. When the user repliesthat he or she does not want to reproduce the program, the flow advancesto step S53. At step S53, the program is skipped. When the user repliesthat he or she wants to reproduce the program, the flow advances to stepS51. At step S51, the value of CT is decremented. Thereafter, the flowadvances to step S45. At step S45, the program is reproduced.

[0529]FIG. 37 shows a ramification of the embodiment of the presentinvention. According to the ramification, a program can be reproduced asa program successive reproducing operation, a program repeat reproducingoperation, a program shuffle reproducing operation, and a programpre-set reproducing operation. In the program repeat reproducingoperation, when the repeat button is pressed, all programs stored in thememory card are repeatedly reproduced unless the operation is cancelled.Thus, the program repeat reproducing operation is called endless repeatreproducing operation. In the program shuffle reproducing operation, allprograms stored in the memory card are reproduced once time at random.Unless the operation is cancelled, the program shuffle reproducingoperation is repeated. Thus, the program shuffle reproducing operationis one mode of the endless repeat reproducing operation. The programshuffle reproducing operation is also called program random repeatreproducing operation. In the program pre-set reproducing operation,selected programs stored in the memory card are reproduced in theselected order.

[0530] In a combination of those reproducing methods and the first modeor the third mode, a reproducing method is automatically designated. Inthe process shown in FIG. 37, when the program repeat reproducingoperation is performed, a reproducing method for automatically skippinga program that has been reproduction restricted is designated. In FIG.37, for simplicity, similar blocks to those in FIG. 36 are omitted. Inaddition, their description will be omitted. As was described above,when the determined result at step S50 represents that the first modehas been designated, when the determined result at step S52 representsthat the user wants to reproduce the program, when the determined resultat step S50 represents that the designated mode is not the first mode,but the third mode, the flow advances to step S54. At step S54, it isdetermined whether or not the program repeat reproducing operation(endless repeat reproducing operation) has been designated.

[0531] When the determined result at step S54 represents that theprogram repeat reproducing operation has not been designated, the flowadvances to step S45 through step S51. At step S45, the program isreproduced. When the determined result at step S54 represents that theprogram repeat reproducing operation has been designated, the flowadvances to step S55. At step S55, the program is skipped. Thereafter,the flow returns to a reproducing process for the next program. Forexample, the flow returns to step S41 (see FIG. 36). In the programrepeat reproducing operation, there is a possibility of which a programwill be reproduced a plurality of number of times. When the program hasbeen reproduction restricted, there is a possibility of which theprogram cannot be reproduced soon. However, when the reproducingoperation for the program is skipped, such a possibility can be avoided.

[0532] The flow chart of FIG. 37 shows only the program repeatreproducing operation. However, the reproducing method of the first modeor the third mode and the program shuffle reproducing operation can becombined. In other words, in the program shuffle reproducing operation,a program that has been reproduction restricted is skipped. Moreover, inthe program pre-set reproducing operation, even if a program has beenreproduction restricted, only when the first mode is selected, theprogram can be reproduced.

[0533]FIG. 38 shows an example of the system structure according to theembodiment of the present invention. In FIG. 38, reference numeral 71represents a recorder that uses a memory card as a record medium (seeFIG. 1). Reference numerals 72L and 72R represent speakers. Referencenumeral 78 represents an external personal computer. The recorder 71 andthe personal computer 78 are connected through a predetermined interfacefor example USB (Universal Serial Bus) 79.

[0534] In the system, when predetermined application software isinstalled to the personal computer 78, digital audio data is stored to ahard disk of the personal computer 78. For example, music data isdownloaded by the EMD system through the Internet. In addition, a CD ROMdrive of the personal computer 78 reproduces a program from a music CDand records the reproduced program to the hard disk. In addition, amusic file in the MP3 format is converted into an ATRAC3 format. Themusic file in the ATRAC3 format is recoded to the hard disk. Inaddition, the recorder 71 can record encrypted ATRAC3 data that isreceived from the personal computer 78 to the memory card. Moreover,music data can be prohibited from being recorded from the recorder 71 tothe memory card.

[0535] The recorder 71 has a memory card slot 72 and a displaying device73. The displaying device 73 is composed of for example a liquid crystaldisplay. In addition, the recorder 71 has a power switch 74, an audiovolume controller knob 75, an AMS/JOG knob 76, and switch buttons 77 ato 77 e. The AMS/JOG knob 76 is used to detect the beginning of aprogram. In addition, the recorder 71 can be operated by a remotecontrol commander (not shown).

[0536] Next, an operation associated with the present invention will bedescribed. First of all, a method for designating a reproducing mode fora program that has been reproduction restricted will be described.First, a MENU/NO button 77 c is pressed. The AMS/JOG knob 76 is rotated.“RESTRICT” is selected from a menu displayed on the displaying device73. Thereafter, an ENTRY/YES button 77 d is pressed.

[0537] On the displaying device 73, a menu for selecting one of thefirst mode, the second mode, and the third mode is displayed. TheAMS/JOG knob 76 is rotated. One of the three modes is selected.Thereafter, the ENTRY/YES button 77 d is pressed. With such a sequenceof operations, a desired mode has been designated.

[0538] As was described above, when a program has been reproductionrestricted with respect to the duration of reproduction, by comparingthe reproduction start date and time with the reproduction end date andtime, it is determined whether or not the program has been expired.Thus, it is necessary to correctly set the time of the clock of therecorder 71. The date and time are input by the user and stored in theRAM of the system controller 32. When the system controller 32 hasdetermined that the date and time information that was input by the useris not stored in the RAM, the system controller 32 prohibits a programthat has been reproduction restricted with respect to the duration ofreproduction from being reproduced.

[0539] Next, an operation for designating the date and time of therecorder 71 will be described. First, the MENU/NO button 77 c ispressed. The AMS/JOG knob 76 is rotated. “DATE ADJ” is selected from amenu displayed on the displaying device 73. Thereafter, the ENTRY/YESbutton 77 d is pressed.

[0540] The AMS/JOG knob 76 is rotated. A correct value (for example, loworder two digits of Christian year) is set to “year” that blinks.Thereafter, the ENTRY/YES button 77 d is pressed. Thereafter, “month”blinks. The AMS/JOG knob 76 is rotated. A correct value is set to“month”. Thereafter, the ENTRY/YES button 77 d is pressed. Thereafter,“day” blinks. The AMS/JOG knob 76 is rotated. A correct value is set to“day”. Thereafter, the ENTRY/YES button 77 d is pressed. In the samemanner as “year”, “month”, and “day”, correct values are set to “hour”and “minute”. In the forgoing operations, the date and time have beenset.

[0541] In the forgoing, the case that the present invention is appliedto a digital audio recorder was described. Likewise, the presentinvention can be applied to an apparatus that deals with video data,another type of audio data, and/or program data. In addition, thepresent invention can be applied to a reproducing apparatus that uses arecord medium such as a writable optical disc as well as a memory card.

[0542] According to the present invention, when a program is reproducedfrom a record medium on which both a program that has been reproductionrestricted and a program that has not been reproduction restricted havebeen recorded, a program that has been reproduction restricted isreproduced in a method that the user has designated. Thus, the user canselect a method for reproducing a program that has been reproductionrestricted. Consequently, whenever a program that has been reproductionrestricted is reproduced, a situation of which the reproducing operationis paused can be prevented. In addition, a situation of which the userfails to notice that the number of permitted reproduction times becomes0 can be prevented. In addition, when a program that has beenreproduction restricted is reproduced, a log file is automaticallycreated. Thus, the user can know the reproduction history of the programwith the created log files. Consequently, the user can use thereproduction logs to prevent a trouble from taking place.

DESCRIPTION OF REFERENCE NUMERALS

[0543]10 AUDIO ENCODER/DECODER IC

[0544]20 SECURITY IC

[0545]30 DSP

[0546]40 MEMORY CARD

[0547]42 FLASH MEMORY

[0548]52 SECURITY BLOCK

[0549] PBLIST REPRODUCTION MANAGEMENT FILE

[0550] TRKLIST TRACK INFORMATION MANAGEMENT FILE

[0551] INFLIST ADDITIONAL INFORMATION MANAGEMENT FILE

[0552] A3Dnnn AUDIO DATA FILE

[0553]71 RECORDER/PLAYER

[0554]73 DISPLAY DEVICE

[0555]78 EXTERNAL PERSONAL COMPUTER

[0556] SP1 BLKID-TL0 ?

[0557] SP2 INCREMENT BLOCK

[0558] SP3 LAST BLOCK ?

[0559] SP4 SEARCHED BLOCK IS PBLIST

[0560] SP5 NUMBER OF TOTAL TRK WITH REFERENCE TO T-TRK CONTAINED INPBLIST →N

[0561] SUCCESSIVELY SEARCH FOR TRK-XXX OF PBLIST

[0562] CORRELATE TRK-XXX AND FNO AND STORE CORRELATED TABLE IN MEMORY

[0563] N←N-1

[0564] SP9 N=0 ?

[0565] SP10 RETURN POINTER TO TOP BLOCK

[0566] SP11 BLKID-HD0 ?

[0567] SP12 INCREMENT BLOCK

[0568] SP13 LAST BLOCK ?

[0569] SP14 DETERMINED RESULT REPRESENTS THAT SEARCHED BLOCK ISATTRIBUTE FILE

[0570] SP15 CORRELATE FNO, BLOCKSERIAL, AND CONNUM0 CORRESPONDING TOBLOCK NUMBERS AND STORE CORRELATED TABLE TO MEMORY

[0571] SP16 RETURN POINTER TO TOP BLOCK

[0572] SP17 BLKID-A3D ?

[0573] SP18 INCREMENT BLOCK

[0574] SP19 LAST BLOCK ?

[0575] SP20 DETERMINED RESULT REPRESENTS THAT SEARCHED BLOCK IS ATRAC3FILE

[0576] SP21 CORRELATE BLOCK NO, CONNUM0, AND BLOCK SERIAL AND STORECORRELATED TABLE TO MEMORY

[0577] SP22 OBTAIN LINK STATE OF FILE CORRESPONDING TO EACH TABLE STOREDIN MEMORY

[0578] S31 POWER ON

[0579] S32 SELECT REPRODUCING MODE FROM FIRST, SECOND, AND THIRD MODES

[0580] S33 SELECT ONE FROM THREE MODES

[0581] S34 STORE SELECTED MODE TO NVM

[0582] S35 REPRODUCTION BUTTON PRESSED ?

[0583] S36 HAS PROGRAM BEEN REPRODUCTION RESTRICTED ?

[0584] S37 PERFORM NORMAL REPRODUCING OPERATION FOR ONE PROGRAM

[0585] S38 PERFORM REPRODUCING OPERATION CORRESPONDING TO MODE STORED INNVM

[0586] S39 COMPLETE REPRODUCING OPERATION OF REPRODUCIBLE PROGRAM ANDPROCESS NEXT PROGRAM. AFTER PROGRAM THAT HAS BEEN REPRODUCTIONRESTRICTED WITH RESPECT TO NUMBER OF REPRODUCTION TIMES IS REPRODUCED,LOG FILE IS RECORDED IN INF.

[0587] S41 LT BIT 6=0 ?

[0588] S42 PROGRAM HAS NOT BEEN EXPIRED

[0589] S43 PROGRAM IS PROHIBITED FROM BEING REPRODUCED

[0590] S44 LT BIT 7=0 ?

[0591] S45 REPRODUCE PROGRAM

[0592] S46 CT=0 ?

[0593] S47 PROHIBIT PROGRAM FROM BEING REPRODUCED

[0594] S48 SECOND MODE ?

[0595] S49 SKIP PROGRAM

[0596] S50 FIRST MODE ?

[0597] S51 CT=CT−1

[0598] S52 WHETHER USER WANTS TO REPRODUCE PROGRAM?

[0599] S53 SKIP PROGRAM

[0600] S54 REPEAT REPRODUCING OPERATION ?

[0601] S55 SKIP PROGRAM

1. A reproducing apparatus for reproducing a program from a recordmedium on which a program that has been reproduction restricted withrespect to the number of reproduction times and a program that has notbeen reproduction restricted with respect to the number of reproductiontimes have been recorded, the record medium having a management area formanaging an identifier that represents whether or not a program has beenreproduction restricted with respect to the number of reproductiontimes, the reproducing apparatus comprising: determining means fordetermining whether or not a program to be reproduced has beenreproduction restricted with respect to the number of reproduction timescorresponding to the identifier managed in the management area, whereinthe reproducing apparatus has a mode designating function that allows atleast two of a first mode, a second mode, and a third mode to bedesignated, when the determined result of the determining meansrepresents that the program to be reproduced has been reproductionrestricted with respect to the number of reproduction times, the firstmode asking the user whether or not he or she wants to reproduce theprogram, the second mode forcedly prohibiting the program from beingreproduced, the third mode causing the program to be unconditionallyreproduced.
 2. The reproducing apparatus as set forth in claim 1,wherein the mode designating function becomes valid when the power ofthe apparatus is turned on, the mode designating function causing theapparatus to reproduce a program in the designated mode until thedesignated mode is changed.
 3. The reproducing apparatus as set forth inclaim 1, wherein when the reproducing apparatus reproduces a programthat has been reproduction restriction with respect to the number ofreproduction times, the reproducing apparatus automatically creates alog file and records the log file to the management area of the recordmedium.
 4. A reproducing apparatus for reproducing a program from arecord medium on which a program that has been reproduction restrictedwith respect to the number of reproduction times and a program that hasnot been reproduction restricted with respect to the number ofreproduction times have been recorded, the record medium having amanagement area for managing an identifier that represents whether ornot a program has been reproduction restricted with respect to thenumber of reproduction times, the reproducing apparatus comprising:determining means for determining whether or not a program repeatreproducing operation has been designated; and controlling means forcausing the reproducing apparatus to repeatedly reproduce a programexcept for a program that has been reproduction restricted with respectto the number of reproduction times when the determined result of thedetermining means represents that the program repeat reproducingoperation has been designated.
 5. The reproducing apparatus as set forthin claim 4, wherein the program repeat reproducing operation is aprogram repeat reproducing operation for reproducing programs in theorder of which they have been recorded on the record medium.
 6. Thereproducing apparatus as set forth in claim 4, wherein the programrepeat reproducing operation is a program random repeat reproducingoperation for reproducing programs in a different order of programsrecorded on the record medium.
 7. The reproducing apparatus as set forthin claim 4, wherein when the reproducing apparatus reproduces a programthat has been reproduction restricted with respect to the number ofreproduction times, the reproducing apparatus automatically creates alog file and records the log file in the management area of the recordmedium.
 8. A reproducing apparatus for reproducing a program from arecord medium on which a program that has been reproduction restrictedwith respect to the duration of reproduction has been recorded, thereproducing apparatus comprising: date and time counting means forcounting the date and time; operating means for allowing the user toinput date and time information; memory means for storing date and timeinformation that is input by the operating means; determining means fordetermining whether or not the date and time information has been storedin the memory means; and controlling means for prohibiting a programthat has been reproduction restricted with respect to the duration ofreproduction from being reproduced when the determined result of thedetermining means represents that the date and time information has notbeen stored in the memory means.
 9. A reproducing method for reproducinga program from a record medium on which a program that has beenreproduction restricted with respect to the number of reproduction timesand a program that has not been reproduction restricted with respect tothe number of reproduction times have been recorded, the record mediumhaving a management area for managing an identifier that representswhether or not a program has been reproduction restricted with respectto the number of reproduction times, the reproducing method comprisingthe steps of: determining whether or not a program to be reproduced hasbeen reproduction restricted with respect to the number of reproductiontimes corresponding to the identifier managed in the management area,wherein the reproducing method has a mode designating function thatallows at least two of a first mode, a second mode, and a third mode tobe designated, when the determined result at the determining steprepresents that the program to be reproduced has been reproductionrestricted with respect to the number of reproduction times, the firstmode asking the user whether or not he or she wants to reproduce theprogram, the second mode forcedly prohibiting the program from beingreproduced, the third mode causing the program to be unconditionallyreproduced.
 10. The reproducing method as set forth in claim 9, whereinthe mode designating function becomes valid in a power-on state, themode designating function causing a program to be reproduced in thedesignated mode until the designated mode is changed.
 11. Thereproducing method as set forth in claim 9, wherein when a program thathas been reproduction restriction with respect to the number ofreproduction times is reproduced, a log file is automatically createdand recorded in the management area of the record medium.
 12. Areproducing method for reproducing a program from a record medium onwhich a program that has been reproduction restricted with respect tothe number of reproduction times and a program that has not beenreproduction restricted with respect to the number of reproduction timeshave been recorded, the record medium having a management area formanaging an identifier that represents whether or not a program has beenreproduction restricted with respect to the number of reproductiontimes, the reproducing method comprising the steps of: determiningwhether or not a program repeat reproducing operation has beendesignated; and causing a program except for a program that has beenreproduction restricted with respect to the number of reproduction timesto be repeatedly reproduced when the determined result at thedetermining step represents that the program repeat reproducingoperation has been designated.
 13. The reproducing method as set forthin claim 12, wherein the program repeat reproducing operation is aprogram repeat reproducing operation for reproducing programs in theorder of which they have been recorded on the record medium.
 14. Thereproducing method as set forth in claim 12, wherein the program repeatreproducing operation is a program random repeat reproducing operationfor reproducing programs in a different order of programs recorded onthe record medium.
 15. The reproducing method as set forth in claim 12,wherein when a program that has been reproduction restricted withrespect to the number of reproduction times is reproduced, a log file isautomatically created and recorded in the management area of the recordmedium.
 16. A reproducing method for reproducing a program from a recordmedium on which a program that has been reproduction restricted withrespect to the duration of reproduction has been recorded, thereproducing method comprising the steps of: allowing the user to inputdate and time information; storing date and time information that isinput to memory means; determining whether or not the date and timeinformation has been stored in the memory means; and prohibiting aprogram that has been reproduction restricted with respect to theduration of reproduction from being reproduced when the determinedresult at the determining step represents that the date and timeinformation has not been stored in the memory means.